之前用Qt+mingw写了个DLL,最近有需求matlab想调用这个DLL。于是就想用Qt+MSVC重新编译一下。原因吗,当然是Matlab2009版不支持使用Mingw来编译mex文件,导致不能调用mingw编译出来的DLL。
用MSVC编译之后,出现了以下错误
“error C2059: syntax error : ‘;’”
跳转过去发现错误代码如下:
int _stdcall (*dllfunc)(HANDLE, LPVOID, DWORD,DWORD*, OVERLAPPED*);
dllfunc = (int(MY_STDCALL *)(HANDLE, LPVOID, DWORD,DWORD*, OVERLAPPED*))GetProcAddress(m_hLibrary, "SI_Read");
status = dllfunc(Handle, Buffer, NumBytesToRead, NumBytesReturned, o);
把_stdcall去掉就没有错误了。
但是原始DLL中SI_Read定义是带有_stdcall的,所以有点担心