コンパイルが通らない

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
dic(ネカフェより)

コンパイルが通らない

#1

投稿記事 by dic(ネカフェより) » 12年前

Windows7 Home Edition, Visual C++ 2010 Express に DirectX 9,0 SDK をインストールし
空の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 は読み取り属性がついていてて
私では書き込みできません。ファイルのプロパティから読み取り属性を
はずして、試してもシステムエラーとなり、書き込みができません。

どうすれば、コンパイルが通るようになるのでしょうか?

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: コンパイルが通らない

#2

投稿記事 by h2so5 » 12年前

windows.hを最初にインクルードしてみてはどうでしょう。

dic(ネカフェより)

Re: コンパイルが通らない

#3

投稿記事 by dic(ネカフェより) » 12年前

インクルードよりもはやく定義したところうまくいきました

閉鎖

“C言語何でも質問掲示板” へ戻る