空のWindowsアプリケーションを作り、[ stdafx.h ] に
// TODO: プログラムに必要な追加ヘッダーをここで参照してください。
#include <d3d9.h>
#include <dxerr9.h>
を追加し、コンパイルしたところ以下のコンパイルエラーがでました。
1>------ ビルド開始: プロジェクト: [2013 07 16] DirectX 3D, 構成: Debug Win32 ------
1> stdafx.cpp
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(290): error C2146: 構文エラー : ';' が、識別子 'PVOID64' の前に必要です。
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(290): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(8992): error C2146: 構文エラー : ';' が、識別子 'Buffer' の前に必要です。
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(8992): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(8992): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
[ winnt.h ] : 290行目
typedef void *PVOID;
typedef void * POINTER_64 PVOID64; << ここ
[ winnt.h ] : 8992行目
typedef union _FILE_SEGMENT_ELEMENT {
PVOID64 Buffer; << ここ
ULONGLONG Alignment;
}FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT;
上の290行目 * POINTER_64 という定義がどこにもみつからなかったので
これが原因だろうと思います。しかし、winnt.h は読み取り属性がついていてて
私では書き込みできません。ファイルのプロパティから読み取り属性を
はずして、試してもシステムエラーとなり、書き込みができません。
どうすれば、コンパイルが通るようになるのでしょうか?