请帮我看看调用dll为什么出错?

esri 2003-05-12 09:30:00
void CDlltestcallDlg::OnButton1()
{
int (*p)(int a);
HINSTANCE hDLL;
p ll;
int a;
hDLL=LoadLibrary("d:\\c++\\Dlltest.dll");//加载动态链接库MyDll.dll文件;
ll=(p)GetProcAddress(hDLL,"test");
MessageBox("success!");
a=ll(7);
MessageBox("success!");
FreeLibrary(hDLL);//卸载M // TODO: Add your control notification handler code here

}
单击按钮后出现第一个seccess但是随后出现0x0000000内存不能读
为什么?
...全文
22 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
esri 2003-05-12
  • 打赏
  • 举报
回复
我导出的就是test。
scatzr 2003-05-12
  • 打赏
  • 举报
回复
注意使用:def导出和使用_declspec(dllexport)导出的不一样,还是高手解释一下。

使用view dependence可以查看导出函数
cxf1976 2003-05-12
  • 打赏
  • 举报
回复
在LoadLibrary后,应该检测handle是否有效,然后往下走。
你的程序应该没错,不知道动态链接库MyDll.dll文件是否出问题了。
功名半纸 2003-05-12
  • 打赏
  • 举报
回复
应该是你Dlltest.dll导出的函数名称不为test,而是C/C++输出函数名格式

添加一个DEF文件到你工程中
dlltext.def
LIBRARY "DllTest.dld"

EXPORTS
test
建议函数申明为
extern "C" rettype __stdcall functionname(....)


15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧