一番上だけ・・・?
初めて投稿させていただきます。
私は今WEBを見て、DirectXとVisualStudio2005でC++のプログラムを作っています。
ユーザー定義のソースファイルとヘッダーファイル、リソースファイルを使っていて、そのうちヘッダーファイルを「stdafx.h」で参照したのですが、以下のようなエラーが出ました。
(以下プロジェクト名と各種ファイル名は一部仮称です)
------ ビルド開始: プロジェクト: prg, 構成: Debug Win32 ------
コンパイルしています...
stdafx.cpp
c:\documents and settings\nec-pcuser\my documents\visual studio 2005\projects\prg\prg\stdafx.h(38) : fatal error C1083: include ファイルを開けません。'hdf01.h': No such file or directory
prg - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
おそらく、以下のところに問題があると思われます。
----------[SAMPLE CODE]----------(stdafx.h内)
// TODO: プログラムに必要な追加ヘッダーをここで参照してください。
#include "hdf01.h"
#include "hdf02.h"
#include "hdf03.h"
#include "hdf04.h"
#include "hdf05.h"
----------[SAMPLE CODE]----------
そこで、この掲示板を参考にして次のような方法を取りました。
(1)""を<>に変えてみる
(2)[ツール]-[オプション]からインクルードファイルにパス先を登録してみる
(3)「"hdfXX.h"」を相対パスにする
(4)「"hdfXX.h"」を絶対パスにする
結果は、(1)と(3)は元と同じエラー、(2)と(4)は300以上のエラーが出て、コンパイルが中断されてしまいました。
気になるのは、「"hdf01.h"」と「"hdf02.h"」の位置を入れ替えてみると、「hdf02.h だけを読み込めない」といったエラーが出たことです。
その後もヘッダーファイルを記述する順番を替えてみましたが、どうやら「一番上のヘッダーファイル」だけを読まないらしいです。
実は、WEBで見たプログラムはVC++6.0向けのプログラムで、そのままコピーしてVS2005に貼り付けたところ、
------ ビルド開始: プロジェクト: SampleSTG, 構成: Debug Win32 ------
コンパイルしています...
stdafx.cpp
コンパイルしています...
ssf01.cpp
c:\documents and settings\nec-pcuser\my documents\visual studio 2005\projects\prg\source\ssf.cpp(537) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
ssf02.cpp
c:\documents and settings\nec-pcuser\my documents\visual studio 2005\projects\prg\source\ssf02.cpp(54) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
ssf03.cpp
c:\documents and settings\nec-pcuser\my documents\visual studio 2005\projects\prg\source\ssf03.cpp(136) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
ssf04.cpp
c:\documents and settings\nec-pcuser\my documents\visual studio 2005\projects\prg\source\ssf04.cpp(370) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
コードを生成中...
スキップ中... (関連する変更は検出されませんでした)
prg.cpp
prg - エラー 4、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
というエラーが出たため見直してみたところ、stdafx.hに「// TODO: ~ 」といったものを見かけたため、上のように書き加えました。
PSDKやDirectXのパスは通っています。
アプリケーションは「Win32 Application」→「Win32 プロジェクト」と読み替えて、「プロジェクト名を入力して[OK]を押したら、次の画面でいきなり[完了]を押す」と、指示通りに作成しました。
ちなみに、OSは WindowsXP HomeEdition、
VS2005は AcademicEditionです。
よろしくお願いいたします。
お礼
sakusaker7さん。返事が遅れまして申し訳ございません。 「プリコンパイル済みヘッダを使用しない」にして、ビルドしたところ、うまくいきました。ありがとうございました!!