HINSTANCE hJB8800;
typedef int (*HS_STATE)(int);
HS_STATE hs_state;
typedef int (*OPENPORT)(int);
OPENPORT openport;
typedef void (*CLOSEPORT)();
CLOSEPORT closeport;hJBdll=LoadLibrary("JB8800.dll");
hs_state=(HS_STATE)GetProcAddress(hJBdll,"hs_state");
openport=(OPENPORT)GetProcAddress(hJBdll,"openport");
closeport=(CLOSEPORT)GetProcAddress(hJBdll,"closeport");下面是调用:
int result;
r=hs_state(5);
if(r==119)
return;
else
{
result=openport(r);
if(result==1)
{
MessageBox("成功加载动态链接库!");
closeport();
}
else
MessageBox("加载动态链接库失败!");
}
编译可以通过,但在调试时,单步执行到接口函数调用的地方就会弹出错误提示框,错误信息是:
The value of ESP was not properly saved across a function call.This is usually a result of caling a function declared with one calling convetion with a function pointer declared with a different calling convention.请大家帮我看看,到底是哪里出问题了,我这边很急,谢谢了!
typedef int (*HS_STATE)(int);
HS_STATE hs_state;
typedef int (*OPENPORT)(int);
OPENPORT openport;
typedef void (*CLOSEPORT)();
CLOSEPORT closeport;hJBdll=LoadLibrary("JB8800.dll");
hs_state=(HS_STATE)GetProcAddress(hJBdll,"hs_state");
openport=(OPENPORT)GetProcAddress(hJBdll,"openport");
closeport=(CLOSEPORT)GetProcAddress(hJBdll,"closeport");下面是调用:
int result;
r=hs_state(5);
if(r==119)
return;
else
{
result=openport(r);
if(result==1)
{
MessageBox("成功加载动态链接库!");
closeport();
}
else
MessageBox("加载动态链接库失败!");
}
编译可以通过,但在调试时,单步执行到接口函数调用的地方就会弹出错误提示框,错误信息是:
The value of ESP was not properly saved across a function call.This is usually a result of caling a function declared with one calling convetion with a function pointer declared with a different calling convention.请大家帮我看看,到底是哪里出问题了,我这边很急,谢谢了!
解决方案 »
- 断言错误 在ASSERT(m_hObject == NULL)
- VC中怎么设置一个屏保为当前的屏保
- 问些数据库方面非常非常基础的问题 谢啦
- 关于冒泡提示的问题?<与消息发送、定时器、界面显示有关>
- 指针转换问题
- ATL实现的COM中的HDC 怎么在VB调用时,变成了wireHDC?
- 我的CImageList的Add()为什么加不进去图标呢?
- 高分求 克里金 插值 算法(1500)
- 哪有MSDN下载??提供链接地址速度10K以上者,即给100分!
- 如何在MFC中实现绘图功能,就像visio流程图那样
- [急]COleSafeArray怎么重新动态分配数组范围阿 用Redim一点反应都没有啊
- java中的byte类型在vc下可等同于什么数据类型
typedef int (*HS_STATE)(int);
typedef int (*OPENPORT)(int);
typedef void (*CLOSEPORT)();
这三个定义中有一个和DLL中实际定义不一样
造成函数寻址错误
返回的hs_state正确么?
缺省使用__cdecl 方式 具体区别自己查吧。