Home | Lesson | Game | Tool | Link

000B.DirectX9.0bの注意点

VisualC++2005EE以降(VisualC++2008EEも含む)とDirectX9.0bが
インストールされている場合、エラーが出てコンパイルできない場合があります。
(DirectXのバージョンによってはエラーが出ない場合があります。)

エラー内容
c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(236)
 : error C2146: 構文エラー : ';' が、識別子 'PVOID64' の前に必要です。

c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(236)
 : error C4430: 型指定子がありません - int と仮定しました。
メモ: C++ は int を既定値としてサポートしていません

WinNT.hでPVOID64の定義の仕方がおかしいという内容です。
WinNT.hの236行目あたりを見てみると以下のように記述されています。
typedef void *PVOID;
typedef void * POINTER_64 PVOID64;
↓次のように変更します。
typedef void *PVOID;
typedef void * POINTER_64, * PVOID64;
※VisualC++2005EEとVisualC++2008EEではWinNT.hの位置が違う場合があります。
エラーメッセージ内にファイルの場所が指定されているので、そちらを参照して下さい。


これで、VisualC++EEでも問題なくコンパイルできるようになります。