我想依照网上的一个教程,来做一个鼠标钩子。按照教程里面的步骤,先建立了一个MFC DLL项目,类型为共享MFC dLL的类型,附加功能上点选自动化。然后是创建一个头文件,在其中建立钩子类(教程比较老是VC5的版本,没有现成的钩子类)。然后在源文件的顶部包含我创建的头文件,在源文件顶部加入全局共享数据变量,在DEF文件中定义段属性。以上都正常,但是下面教程上说要在源文件的DLLMain函数中加入保存DLL实例句柄的语句“glhinstance=hinstance”,但是我并没有在源文件中找到DLLMain的相关语句。我在网上查了一下,尝试自己写DLLMAIN函数如下
static AFX_EXTENSION_MODULE KSHooK001DLL;
extern "C" int APIENTRY
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{if (dwReason == DLL_PROCESS_ATTACH)
TRACE0("MOUSEHOOK.DLL Initializing!/n");
if (!AfxInitExtensionModule(KSHooK001DLL, hInstance))
return 0;
new CDynLinkLibrary(KSHooK001DLL);
glhInstance=hInstance;
};
但是编译错误 如下
1 IntelliSense: 变量 "BOOL" 不是类型名
2 IntelliSense: 声明与 "BOOL CKSHook001App::InitInstance()" (已声明 所在行数: 68) 不兼容
3 IntelliSense: 应输入“;”
请问正确的代码要怎样写,是否自动化的MFC DLL项目系统已经自动设置了DLLMAIN函数,如果是,请问如何保存DLLMAIN函数的实例句柄呢?
http://wenku.baidu.com/view/af044fa5284ac850ad0242c2.html 这是那个教程资料的地址
谢谢