在VC ++ 9项目中使用自定义枚举会导致编译错误

时间:2010-08-20 12:04:32

标签: visual-studio-2008 visual-c++ visual-c++-2008

我正在从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的问题。

1 个答案:

答案 0 :(得分:1)

您曾经使用非常旧版本的Windows SDK编译代码。 VC6甚至比Windows XP更老,操作系统添加了SendInput()API函数。

您可以使用

解决您的问题
 #define _WIN32_WINNT 0x400   // Targeting Windows 2000
 #include <windows.h>

但是你不能使用在Windows 2000之后添加的任何API。考虑到代码的大小,可能不是一个真正的问题。只需重命名INPUT或将您的类放在自己的命名空间中即可继续前进。