Использование Custom Enum в проекте VC ++ 9 приводит к ошибке компиляции - PullRequest
2 голосов
/ 20 августа 2010

Я работаю в проекте миграции с VC ++ 6 на VC ++ 9. Я использую Custom Enum в проекте VC ++ 9, который вызывает ошибку компиляции, поскольку он дублируется с базовым классом 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 Ответ

1 голос
/ 20 августа 2010

Вы использовали для компиляции кода с очень старой версией Windows SDK. VC6 даже старше, чем Windows XP, операционная система, которая добавила функцию API SendInput ().

Вы можете обойти вашу проблему с

 #define _WIN32_WINNT 0x400   // Targeting Windows 2000
 #include <windows.h>

Но тогда вы не сможете использовать API, которые были добавлены после Windows 2000. Вероятно, это не реальная проблема, учитывая возраст вашего кода. Двигайтесь вперед, просто переименовав INPUT или поместив ваш класс в свое собственное пространство имен.

...