动态库调用出错

chenxiangxie 2005-12-24 11:04:38
错误信息:Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
我用的是非MFC动态库dll,动态加载,有.def文件,步骤如下:
1。dll项目和测试项目在同一个工作区
2. DLL项目生成成功,把.DLL文件考贝到TEST项目的DEBUG目录下

3。把.DLL文件加到test项目中来,运行test项目
void CtestDlg::OnBnClickedBegin()
{
HINSTANCE hDll;//Dll句柄
lpSearchFun searchFun;//函数指针
hDll=LoadLibrary("SearchDll.dll");
if(hDll!=NULL)
{
searchFun=(lpSearchFun)GetProcAddress(hDll,"Search");
if(searchFun!=NULL)
{
int result=searchFun("a","a",1,"a");
CString a;
a.Format("%d",result);
AfxMessageBox(a);
}
FreeLibrary(hDll);
}
}当运行到这里(最后一个“}”)出现上述错误提示
...全文
81 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wshcdr 2006-01-04
  • 打赏
  • 举报
回复
对DLL导出的函数用__stdcall修饰

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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