我想写一个键盘记录的全局钩子,并封装在一个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)高手指教啊?
谢谢哦
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)高手指教啊?
谢谢哦
解决方案 »
- cedit输入控制问题
- 请问,解析SQL注入是否就两招?
- CPtrArray可以这么用吗?谁能解释一下啊
- 怎样在程序中弹出一个网页(远程网页)?
- 请问谁给我介绍一下 c,c++,c#,c#builder,vc,vc##,vc.net.java,vb等的区别.
- 有没有ScrollText的源码(C++)?
- 如何用一行语句判断一个数是不是2的次方?
- 如何获得一个正在运行程序的版本信息?
- 用windows xp的连接共享(adsl)客户机为何有些网站不能上呢!主机都可以上
- 怎样调试系统登录时运行的程序?
- 调色板中,结构体中,定义数组PALETTEENTRY palPalEntry[1];,为什么不是palPalEntry[palNumEntries]
- 如何从DMP文件中分析出程序存在的问题
WPARAM wParam,
LPARAM lParam
)
{
return 0;
}SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,dll_lib,0);