我想写一个键盘记录的全局钩子,并封装在一个dll中,可是当我在dll中加载hook具体的指令( KBhook_deal)时,却出错了!错误信息:
error C2065: 'KBhook_deal' : undeclared identifier
error C2373: 'KBhook_deal' : redefinition; different type modifiers
相关代码:
SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KBhook_deal,dll_lib,0);//dll_lib就是当前dll的句柄////……………………………………………………LRESULT CALLBACK KBhook_deal(int nCode,WPARAM wParam,LPARAM lParam){
if(nCode<0) return(CallNextHookEx(KBhookEn,nCode,wParam,lParam)); //将信息传递给下一个钩子
//SendMessage(APP_hdl,WM_KEYHOOK,wParam,lParam);                //向KEYSPY调用程序发送信息
HANDLE hThreadid=OpenFileMapping(FILE_MAP_WRITE,false,"Threadid");
if(hThreadid){
int *pThreadid=(int *)MapViewOfFile(hThreadid,FILE_MAP_READ|FILE_MAP_WRITE,0,0,0);
if(pThreadid) KBthreadid=*pThreadid;
    }
//else MessageBox(NULL,"no find meme","no",MB_OK);
if(true){
PostThreadMessage(KBthreadid,WM_KEYHOOK,wParam,lParam);         //向线程发送消息
}
//else MessageBox(NULL,"false","false",MB_OK);
if(DisableKB) return 1;
return 0;
}
这并没有重复定义啊!难道hook指令只能放在另一个dll中,让这个dll再去加载它?(之前就是这样,现在要求精简下,做成一个dll)高手指教啊?
谢谢哦