键盘钩子dll编译出现问题,请大家支招,谢谢!

别问了 2010-02-02 09:53:46
我现在想编写一个键盘钩子,但现在出现问题了,以下为头文件和源文件的部分内容

头文件:
typedef LRESULT (* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam);
typedef HHOOK (*_SetWindowsHookExW)(int, HOOKPROC, HINSTANCE, DWORD);
typedef LRESULT (*_CallNextHookEx)(HHOOK, int, WPARAM, LPARAM);
typedef LRESULT (*_UnhookWindowsHookEx)(HHOOK);

_CallNextHookEx CallNextHookEx;
_SetWindowsHookExW SetWindowsHookEx;
_UnhookWindowsHookEx UnhookWindowsHookEx;

源文件:
//获得SetWindowsHookEx函数的地址
HINSTANCE g_hHookApiDLL=LoadLibrary(_T("coredll.dll"));

SetWindowsHookEx=(_SetWindowsHookExW)GetProcAddress(g_hHookApiDLL, _T("SetWindowsHookExW"));
UnhookWindowsHookEx=(_UnhookWindowsHookEx)GetProcAddress(g_hHookApiDLL, _T("UnhookWindowsHookExW"));
CallNextHookEx=(_CallNextHookEx)GetProcAddress(g_hHookApiDLL, _T("CallNextHookEx"));

报错信息:
error C2501: 'SetWindowsHookEx' : missing storage-class or type specifiers
error C2365: 'SetWindowsHookEx' : redefinition; previous definition was a 'function'
...全文
53 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolfmvp 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 shiftall 的回复:]
我现在想编写一个键盘钩子,但现在出现问题了,以下为头文件和源文件的部分内容

头文件:
typedef LRESULT (* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam);
typedef HHOOK (*_SetWindowsHookExW)(int, HOOKPROC, HINSTANCE, DWORD);
typedef LRESULT (*_CallNextHookEx)(HHOOK, int, WPARAM, LPARAM);
typedef LRESULT (*_UnhookWindowsHookEx)(HHOOK);

_CallNextHookEx CallNextHookEx;
_SetWindowsHookExW SetWindowsHookEx;
_UnhookWindowsHookEx UnhookWindowsHookEx;

源文件:
//获得SetWindowsHookEx函数的地址
HINSTANCE g_hHookApiDLL=LoadLibrary(_T("coredll.dll"));

SetWindowsHookEx=(_SetWindowsHookExW)GetProcAddress(g_hHookApiDLL, _T("SetWindowsHookExW"));
UnhookWindowsHookEx=(_UnhookWindowsHookEx)GetProcAddress(g_hHookApiDLL, _T("UnhookWindowsHookExW"));
CallNextHookEx=(_CallNextHookEx)GetProcAddress(g_hHookApiDLL, _T("CallNextHookEx"));

报错信息:
error C2501: 'SetWindowsHookEx' : missing storage-class or type specifiers
error C2365: 'SetWindowsHookEx' : redefinition; previous definition was a 'function'

[/Quote]错误一:丢失存储类或者类型标识符。
错误二:SetWindowsHookEx重定义,前面定义时它为一个函数。
youyou6115 2010-02-02
  • 打赏
  • 举报
回复
zhangwenlang 2010-02-02
  • 打赏
  • 举报
回复
define CallNextHookEx CallNextHookEx;
define _SetWindowsHookExW SetWindowsHookEx;
define _UnhookWindowsHookEx UnhookWindowsHookEx;

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧