我正在从VC ++ 6到VC ++ 9的迁移项目中工作。我在VC ++ 9项目中使用Custom Enum会导致编译错误,因为它与mfc基类winuser.h重复。
示例代码: -
enum CHKTYPE{ INPUT, READER, BOTH_IR };
错误: -
error C2365: 'INPUT' : redefinition; previous definition was 'typedef'.
c:\program files\microsoft sdks\windows\v6.0a\include\winuser.h(5292) : see declaration of 'INPUT'
这不是VC ++ 6的问题。
答案 0 :(得分:1)
您曾经使用非常旧版本的Windows SDK编译代码。 VC6甚至比Windows XP更老,操作系统添加了SendInput()API函数。
您可以使用
解决您的问题 #define _WIN32_WINNT 0x400 // Targeting Windows 2000
#include <windows.h>
但是你不能使用在Windows 2000之后添加的任何API。考虑到代码的大小,可能不是一个真正的问题。只需重命名INPUT或将您的类放在自己的命名空间中即可继续前进。