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

panchao521 2010-07-16 02:26:05
同样的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)
...全文
88 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 panchao521 的回复:]

但是我知道我一开始时用不了改dll,自己查阅了些资料才找到原因,
装了.net 的SDK后MFC就能用。
[/Quote]
所以还是要知道DLL的一些基本信息,这样才能成功调用,不然就需要自己修改尝试等来确定
panchao521 2010-07-16
  • 打赏
  • 举报
回复
但是我知道我一开始时用不了改dll,自己查阅了些资料才找到原因,
装了.net 的SDK后MFC就能用。
panchao521 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 magic7004 的回复:]
这个函数在DLL中的声明是什么样子的?
[/Quote]
这个DLL是别人给的,只给了个文档而已,看不到代码
文档上是这么介绍的:
1) 开发语言:C/C++
2) 开发集成环境:VS2005
magic7004 2010-07-16
  • 打赏
  • 举报
回复
这个函数在DLL中的声明是什么样子的?
panchao521 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dinjay 的回复:]
FARPROC icsReadFun;
int result = ((int (WINAPI *)(ICS_ACCESS_DATA))icsReadFun)(&ic);
[/Quote]
用了阁下的方法,报错
int result = ((int (WINAPI *)(ICS_ACCESS_DATA *))icsReadFun)(&ic);
报错如下
Unhandled exception in dllCall.exe: 0xC0000005: Access Violation.
wltg2001 2010-07-16
  • 打赏
  • 举报
回复
DLL是什么类型的DLL呢
sunnyatbj 2010-07-16
  • 打赏
  • 举报
回复
你的dll是MFC Extension Dll吧
dinjay 2010-07-16
  • 打赏
  • 举报
回复
FARPROC icsReadFun;
int result = ((int (WINAPI *)(ICS_ACCESS_DATA))icsReadFun)(&ic);
ylywyn136 2010-07-16
  • 打赏
  • 举报
回复
调用方式的问题 导出的函数extern "C" 了吗?

15,473

社区成员

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

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