| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 732 人关注过本帖
标题:请教个Dll问题
只看楼主 加入收藏
rxgasid
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-9-23
收藏
 问题点数:0 回复次数:7 
请教个Dll问题

请教个Dll问题 写了一个Mfc Dll.文件名为Test.Dll

void Rxg::Meg() { AfxMessageBox("ddd"); }

在另一个Mfc Apolication应用文件 如何调用Test.Dll里的Meg()这个函数

谢谢:)

搜索更多相关主题的帖子: Dll问题 Meg Mfc Test 
2005-10-20 17:22
bingxue2332
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:446
专家分:0
注 册:2004-11-6
收藏
得分:0 
我这里有这样一段关于dll调用的代码

typedef void(WINAPI * TESTDLL)();
                 HINSTACE hmod;
                 hmod = ::LoadLibray("Test.dll");
                 if(hmod == NULL)
                 {
                        AfxMessageBox("连接失败。请检查是否包含Test.dll文件。"," 失败",MB_OK);
                 }
               
                 TESTDLL lpproc;
                 lpproc = (TESTDLL)GetProcAddress(hmod,"Show")
                 if(lpproc != (TESTDLL)NULL)
                           (*lpproc)();
               
                 FreeLibrary(hmod);
          }

Show() 及时dll里的函数

2005-10-20 18:44
rxgasid
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-9-23
收藏
得分:0 
老大报错如下
WINAPI * TESTDLL
2005-10-21 12:35
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 

楼上版主的是显式链接,但"WINAPI*TESTDLL"这里错了.DLL的链接方式有两种"隐式链接"和"显式链接".我以下的也是显式 (显式优点更大). 如果你想调用DLL里的函数,你就要确定那些"导出函数",那些是"内部函数"."内部函数"是不能调用 的,只有"导出函数"可用.指定"导出函数"有三种方法,我只介绍其中的一种"DEF文件导出函数"(如果你有兴趣 想知道其佘两种可以再发贴告诉我). DEF文件导出函数:在DLL工程中新建一文本文件(后缀为.DEF)输入: LIBRARY TEST.DLL EXPORTS Meg @1 (MFC DLL会自动生成,不过导出函数还要自己指定.只有Win32要手动) 2):打开TEST.CPP输入如下: #include <windows.h> void Meg();

BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) { switch(fdwReason) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_PROCESS_DETACH: case DLL_THREAD_DETACH: break; } return TRUE; }

void Meg() { AfxMessageBox("ddd"); } 3):生成DLL. 4);打开你要链接DLL的MFC程序源文件输入如下则可调用void Meg()函数: HINSTANCE hInstance; FARPROC pFunction; hInstance=::LoadLibrary("TEST.dll"); pFunction=::GetProcAddress(hInstance,"Meg"); pFunction(); FreeLibrary(hInstance); 5):生成程序OK.

[此贴子已经被作者于2005-10-21 22:31:36编辑过]


=×&D o I p R e E n C g T l X&×=
2005-10-21 14:47
jdytz
Rank: 2
等 级:新手上路
威 望:3
帖 子:104
专家分:0
注 册:2005-4-24
收藏
得分:0 
呵呵,厉害啊。。

``` 奔放潇洒活着我的自由
2005-10-21 21:52
whaozhe
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2005-10-21
收藏
得分:0 
偶还是不懂

就是不懂
............

2005-10-23 19:19
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 
说的这么简单.不懂也帮不了你了!

=×&D o I p R e E n C g T l X&×=
2005-10-23 21:01
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 
那位!那位!我帮你顶一下!

=×&D o I p R e E n C g T l X&×=
2005-11-10 19:17
快速回复:请教个Dll问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017013 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved