The value of ESP was not properly saved across a function call是什么原因

Koalar 2004-04-10 10:36:22
已知有一dll中有一函数返回值为整型数,参数为6个串,参数可在dll的函数中被改变,我使用如下语句调用该函数:
typedef int (*TEST)(CString&,CString&,CString&,CString&,CString&,CString&);
TEST test;
test=(TEST)GetProcAddress(hinst,"test");
test(a,b,c,d,e,f);
运行时得到如下错误信息:
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.
但是其他的程序(别人的程序)可以正常调用这个函数,请问这是为什么?
...全文
2136 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingrain213 2010-06-08
  • 打赏
  • 举报
回复
XIEXIE .明白了
Koalar 2004-04-11
  • 打赏
  • 举报
回复
多谢!搞定!接分!
薛定谔之死猫 2004-04-10
  • 打赏
  • 举报
回复
typedef int (_stdcall *TEST)(CString&,CString&,CString&,CString&,CString&,CString&)
薛定谔之死猫 2004-04-10
  • 打赏
  • 举报
回复
加 __stdcall调用约定
薛定谔之死猫 2004-04-10
  • 打赏
  • 举报
回复
调用约定申明不一致

15,471

社区成员

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

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