高手请入:为什么动态链接库可以静态调用而不能动态调用 小弟在使用一个动态链接库时,只能静态编译链接。使用viewdll工具察看导出函数也可以看到有很多函数,但动态调用时模块虽然能够正确加载,但得不到任何函数入口地址 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 静态编译链接需要*.lib动态加载用LoadLibraryh和GetProcAddress 导出时候尝试使用“extern "c"”标识,试试看行不。 跟类型说明有关系吗?不太懂.GetProcAddress得到的函数地址都是NULL,为什么啊 HINSTANCE hInst; hInst=LoadLibrary("Dll3.dll"); typedef int (/*_stdcall*/ *ADDPROC)(int a,int b); //ADDPROC Add=(ADDPROC)GetProcAddress(hInst,"?add@@YAHHH@Z"); ADDPROC Add=(ADDPROC)GetProcAddress(hInst,MAKEINTRESOURCE(1)); if(!Add) { MessageBox("获取函数地址失败!"); return; } CString str; str.Format("5+3=%d",Add(5,3)); MessageBox(str); FreeLibrary(hInst);也许对你有帮助,最后用函数指针调用函数 谢谢楼上达人,小弟通过viewdll查得函数的入口偏移地址,然后加上dll动态加载地址后正好是该函数的入口地址,等试过楼上的方法后再来结贴 把messagebox中的按钮改成中文 请教,为何在OCX控件中,CDialog::Create()方法会失败? 关于组合框的编辑栏里获取当前光标位置的问题 请问我的VSS数据库为什么只有guest可以登陆? 如何获得网卡的在线IP地址?? 如何取得单文档单视图的结构的文档指针和视图指针? 寻找一个有开放源代码和完整设计思想的GDI 为什么VC编写的DLL向VB返回参数时的问题(由于本人可用分有限,给分较少请见谅) 怎么获得子窗口的指针 请问:现在是否有中文的VC++的MSDN??? 求助:关于画图的一个问题。 我的一点小问题~~~
动态加载用LoadLibraryh和GetProcAddress
hInst=LoadLibrary("Dll3.dll");
typedef int (/*_stdcall*/ *ADDPROC)(int a,int b);
//ADDPROC Add=(ADDPROC)GetProcAddress(hInst,"?add@@YAHHH@Z");
ADDPROC Add=(ADDPROC)GetProcAddress(hInst,MAKEINTRESOURCE(1));
if(!Add)
{
MessageBox("获取函数地址失败!");
return;
}
CString str;
str.Format("5+3=%d",Add(5,3));
MessageBox(str);
FreeLibrary(hInst);
也许对你有帮助,最后用函数指针调用函数