📄 subject_47646.htm
字号:
<p>
序号:47646 发表者:元帅 发表日期:2003-07-22 20:44:00
<br>主题:动态加载DLL需要注意那些问题啊?
<br>内容:我在OnButton里动态加载DLL可是只能LoadLibrary(),不能GetProcAddress(),这是为什么啊?//我已经把thread_Dll.dll文件考到我的Debug文件夹下了<BR>//这段程序是VC6.0技术内幕里第22章关于动态连接库的一段相似代码。<BR>OnButton()<BR>{<BR> typedef int (*FUN1)(void);<BR> HINSTANCE hInstance;<BR> FUN1 pfun1;<BR> VERIFY(hInstance=::LoadLibrary("thread_Dll"));<BR> VERIFY(pfun1=(FUN1)::GetProcAddress(hInstance,"fnthread_Dll"));<BR> int result = (*pfun1)();<BR> CString str;<BR> str.Format("%d",result);<BR> MessageBox(str);<BR>}
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:太平冰水 回复日期:2003-07-23 13:10:34
<br>内容:输出函数应该使用C标准调用,不能使用c++调用,具体就是用Extern “C”修饰导出函数
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:元帅 回复日期:2003-07-23 20:23:09
<br>内容:我的dll.h文件是<BR>#ifdef DLL_EXPORTS<BR>#define DLL1_API __declspec(dllexport)<BR>#else<BR>#define DLL1_API __declspec(dllimport)<BR>#endif<BR><BR>DLL1_API int fnthread_Dll(void);<BR><BR>不过,我在前面加了extern "c",也是没用的啊,即:<BR>extern "c" DLL1_API int fnthread_Dll(void);
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:元帅 回复日期:2003-07-24 22:22:50
<br>内容:我的问题解决了,谢谢你
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -