我正在新框(vista 64)上编译我的应用程序,现在它不再编译了。编译器给我标题中的错误。问题似乎是(?)HWINEVENTHOOK被定义两次
windef.h
#if(WINVER >= 0x0400)
DECLARE_HANDLE(HWINEVENTHOOK);
#endif /* WINVER >= 0x0400 */
然后在winable.h中
#if WINVER < 0x0500 // these structures and functions
// are in NT 5.00 and above winuser.h
typedef DWORD HWINEVENTHOOK;
但是,我只是在WINVER上查找了Vista,它是0x0600,而Windows XP是0x0501,为什么要定义DWORD?我很茫然。有人帮忙吗?
最佳答案
根据this MSDN forum thread:
您正在使用哪个版本的Windows SDK,以及代码目标是哪个Windows版本?目标Windows版本可以在Makefile,项目文件或头文件中指定。在Vista上编译代码并不一定意味着目标版本是Vista。
另外,您是否尝试过从winable.h切换到winuser.h?