读书人

dll已成功生成项目不能调用其中的函

发布时间: 2012-02-20 21:18:23 作者: rapoo

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();
[解决办法]
探讨
我加了。。。的的确确是有这个文件的。。可是还是不行啊。。。怎么办??
或者麻烦你给写一个regular dll mfc 的dll。。并且能够被调用的过程。。谢谢!!1

读书人网 >VC/MFC

热点推荐