求助SetWindowsHookEx总是参数错误
这个函数在64位系统下应用没问题吧,我是初学的新手,老师要求做个spy++截取指定窗口消息的工具,我想挂钩,但是SetWindowsHookEx返回值为0,GetLastError返回值87,是参数错误,这是我DLL的代码// ½¨Á¢Êý¾Ý¶Î
#pragma data_seg("HookData")
HHOOK g_hHook = NULL; // ¹³×Ó¾ä±ú
HINSTANCE g_hInstDLL = NULL; // Ä£¿é¾ä±ú
#pragma data_seg()
// ÉèÖÃÊý¾Ý¶ÎΪ¿É¶Á¿Éд¿É¹²Ïí
#pragma comment(linker,"/SECTION:HookData,RWS")
// Èë¿Úº¯Êý
BOOL APIENTRY DllMain(HINSTANCE hInstDLL,
DWORD fdwReason,
LPVOID lpvReserved)
{
if(fdwReason == DLL_PROCESS_ATTACH)
{
g_hInstDLL = hInstDLL; // ³õʼ»¯Ä£¿é¾ä±ú
}
return TRUE;
}
// ¹³×ӻص÷º¯Êý
LRESULT WINAPI HookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
switch (wParam)
{
case WM_LBUTTONDOWN:
MessageBox(NULL, "Êó±ê×ó¼ü°´ÏÂ", "Text", MB_OK);
break;
}
// ½«Ê¼þ´«µÝµ½ÏÂÒ»¸ö¹³×Ó
return CallNextHookEx(g_hHook, nCode, wParam, lParam);
}
//°²×°¹³×Ó
extern "C" __declspec(dllexport) DWORD InstallHook(DWORD dwThread)
{
DWORD dwRet = 0;
g_hHook = SetWindowsHookEx(WH_MOUSE, HookProc, g_hInstDLL, dwThread);
if(g_hHook == NULL)
dwRet = GetLastError();
return dwRet;
}
//Ð¶ÔØ¹³×Ó
extern "C" __declspec(dllexport) DWORD KillHook()
{
if(UnhookWindowsHookEx(g_hHook))
return 0;
else
return GetLastError();
} 这个..............帮顶一下
页:
[1]