dll已成功生成,项目不能调用其中的函数。。。。
dll已成功生成,项目不能调用其中的函数。。。。
错误: unresolved external symbol "int __stdcall InstallHook(void)" (?InstallHook@@YGHXZ)。
1. 已经包含dll的头文件。
#include "../s3dhook/s3dhook.h"
2. 在setting中加入了.lib文件;
3. 做好了函数声明:
S3DHOOKAPI BOOL WINAPI InstallHook();
S3DHOOKAPI BOOL WINAPI UninstallHook();
其中 S3DHOOKAPI 代表的是:_declspec(dllimport)不能用extern c的;
为什么不能成功撒!!!
[解决办法]
发生了名字改编,最简单的方法就到 DLL工程中加入一个 .DEF文件;
LIBRARY
EXPORTS InstallHook
EXPORTS UninstallHook
[解决办法]
因为InstallHook是从类输出的函数,调用时需要类的信息,
假定你的dll输出函数是这么定义的
- C/C++ code
class CS3DHookApp{public: static LRESULT WINAPI KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);_declspec(dllexport) BOOL WINAPI InstallHook();_declspec(dllexport) BOOL WINAPI CS3DHookApp::UninstallHook();};在调用时需要把上面的定义引入到调用工程并这么调用[code=C/C++] CS3DHookApp aa; aa.InstallHook();
[解决办法]