如何调用DLL api
How to call DLL APIs
我正在尝试用vc++版本8编写一个应用程序。我有一个DLL,使用依赖walker我得到了DLL中可用的api列表。
我能够加载DLL。但是当我试图调用DLL中的一些api时,我会得到这个调试错误
"Run-Time Check Failure #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);
当最后一行执行时,我得到了上面的错误。原因是什么呢?
您的MYPROC函数指针声明错误。这个函数接受两个参数,而不是一个。您可以从名称的@8部分看出,这表示参数值需要8字节的堆栈空间。用一个参数(一个4字节的指针)调用它,总是会使堆栈不平衡。
你需要修正你的MYPROC声明
相关文章:
- N-API include an .so or dll
- sf::Windows上的音乐:api-ms-win-crt-locale-l1-1-0.dll:无法打开共享对象文件
- 如何将第三方 dll、标头和库文件与 Node N-API 一起使用
- C++ API-MS-WIN-SERVICE-PRIVATE-L1-1-1.DLL依赖项问题
- 如果在 DLL 和调用应用程序中使用 GPGPU API,会发生什么情况
- Windows API "CreateWindowEx" 在 Python (3.6.8) 64 位使用的 DLL 中工作吗?
- 如何在 go 中调用带有 .lib 和.dll文件的预构建 API
- 可视化 使用 C++ API 注册 COM DLL 的所有接口
- 从非托管 DLL 调用 UWP api
- C++ API DLL Project
- 传送仅公开 C API 的 C++ dll
- 带有API的WinRT应用程序,该应用程序使用共享的MFC dll
- 如何在 C++ 中的 DLL API 中使用徽标获取日志
- 从同一个DLL导出带有impl的DLL API和工厂
- 在DLL的基地址处Win API ReadProcessMemory返回意外数据
- FindResource Api为DLL中的Text文件提供错误1813
- 如何将MQL4代码转换为C++/Delphi DLL(Forex Tester API)
- Api-ms-win-core-crt-l1-1-0.dll-Microsoft Visual C++2015 Redi
- 记录dll api,然后模仿它
- 如何调用DLL api