相同的dll用MFC调用就行,用C++调用就报错

panchao521 panchao521 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
同样的dll
调用代码如下
typedef int ( * lpicsReadFun)(ICS_ACCESS_DATA *);


int main(int argc, char* argv[])
{
HINSTANCE hDll1; //DLL句柄
lpicsReadFun icsReadFun; //函数指针
hDll1 = LoadLibrary("..\\Debug\\icsAccess.dll");
ICS_ACCESS_DATA ic;
if (hDll1 != NULL)
{
icsReadFun = (lpicsReadFun)GetProcAddress(hDll1,"icsRead");
if(icsReadFun!=NULL)
{

int result = icsReadFun(&ic); //调试在这报错
.........
}
FreeLibrary(hDll1);
}
}
用MFC也是这么调用的。
可是MFC的就正常,但是这个就有问题,报错如下

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.

(Press Retry to debug the application)
...全文
评论 9
收藏 已收藏
分享
返回顶部
panchao521
进程/线程/DLL 15,466 成员 49,169 内容