编写ocx插件,写了一个简单的初始化串口的例子,遇到了问题,请教下

T-Mac-Paul 2019-09-03 10:41:06
typedef SHORT (*_icInit)(SHORT, LONG);
SHORT CMFCActiveXControl1Ctrl::icInit(SHORT port, LONG baud)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());

// TODO: 在此处添加分派处理程序代码
HINSTANCE hDLL = NULL;
SHORT outstr = -1;
_icInit SigIn;
hDLL = LoadLibrary(TEXT("D:\\Mwic_32.dll"));
if (hDLL != NULL)
{
_icInit SigIn = (_icInit)GetProcAddress(hDLL, "ic_init");
outstr = SigIn(0, 9600);
}
FreeLibrary(hDLL);

return outstr;
}


这里是源码,发生了异常,下图为异常报错


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.
...全文
209 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
铖邑 2019-09-24
  • 打赏
  • 举报
回复
嗯,可以咨询这个组件的提供商,他们应该有接口说明
  • 打赏
  • 举报
回复
调用约定... 你声明的函数指针是默认的cdecl,它DLL中的函数很可能是stdcall
T-Mac-Paul 2019-09-03
  • 打赏
  • 举报
回复
第一次写,有不足之处,还请指出

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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