2

VC++6 から VC++9 への移行プロジェクトに取り組んでいます。VC++9 プロジェクトでカスタム 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 では問題ありません。

4

1 に答える 1

1

非常に古いバージョンの Windows SDK でコードをコンパイルしていました。VC6 は、SendInput() API 関数を追加したオペレーティング システムである Windows XP よりも古いものです。

あなたはあなたの問題を回避することができます

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

ただし、Windows 2000 以降に追加された API は使用できません。コードの古さを考えると、おそらく実際の問題ではありません。INPUT の名前を変更するか、クラスを独自の名前空間に配置するだけで先に進みます。

于 2010-08-20T12:15:08.857 に答える