我正在尝试在 VC++ 版本 8 中编写应用程序。我有一个 DLL,使用依赖walker 我得到了 DLL 可用的 API 列表。
我可以加载 DLL。但是当我尝试调用 DLL 中的一些 API 时,我会得到这个调试错误
“运行时检查失败 #0 - ESP 的值未在函数调用中正确保存。这通常是调用使用一种调用约定声明的函数和使用不同调用约定声明的函数指针的结果。”
typedef void ( WINAPI *RECEIVE_CALLBACK)int*, int );
typedef void (WINAPI *MYPROC)(RECEIVE_CALLBACK);
.....
.....
handleDll = LoadLibraryW((LPCWSTR)L"Example.dll");
ProcAdd = (MYPROC) GetProcAddress(handleDll, "_DLLAPI_Call1@8");
(ProcAdd) ( (RECEIVE_CALLBACK) ReceiveFunc);
执行最后一行时,我收到上述错误。可能是什么原因?