- ベストアンサー
VisualStudio2008でフォルダ違いで同じソースコードファイル名
- VisualStudio2008では、フォルダ違いで同じファイル名のソースコードがある場合、認識してくれないのか?
- フォルダ違いで同じソースコードファイル名でも、クラス名が異なる場合でも、コンパイルエラーが起きない
- ファイル名をユニークにすることで、問題を解決できる
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
パスが明示できていないみたいだから、 #include ".\Test.h" でいいんじゃないかな? VSのインクルードファイルの優先順位トップがおそらくcppファイルの存在場所になっていないのだろうから。 個人的には同一プロジェクトに同名ファイルはおすすめしませんが。
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
「後から追加」というのはどのように操作したのでしょうか? それぞれのファイルにどのように書いたのでしょうか?
補足
Tacosanが指摘されていましたが、情報が足りませんでした。 作成しているプロジェクトはMFCプロジェクトです。 質問した時点と名前が異なりますがご了承ください。 プロジェクトを作成したフォルダにTypeAとTypeBというフォルダを作成し、 それぞれにTest.hとTest.cppを置きました。内容は以下の通りです。 違いはNChildAとNChildBだけです。 --------------------------------------------------------------------------- // TypeA側のヘッダ(Test.h)。 namespace NGroup { namespace NChildA { class CTest { public : CTest( void ) ; virtual ~CTest() ; } ; } } // TypeA側の実装ファイル(Test.cpp)。 #include "stdafx.h" #include "Test.h" namespace NGroup { namespace NChildA { CTest::CTest( void ) { } --------------------------------------------------------------------------- // TypeB側のヘッダ(Test.h)。 namespace NGroup { namespace NChildB { class CTest { public : CTest( void ) ; virtual ~CTest() ; } ; } } // TypeB側の実装ファイル(Test.cpp)。 #include "stdafx.h" #include "Test.h" namespace NGroup { namespace NChildB { CTest::CTest( void ) { } CTest::~CTest() { } } } --------------------------------------------------------------------------- このファイルを用意し、VisualStudioから既存の項目の追加メニューから追加しました。 後から追加したNChildBのソースコードに何を描いてもコンパイルエラーを吐かない状態になってしまいます。 ソリューションエクスプローラからはNChildA、NChildBのTest.h、Test.cppのファイルは開けます。 コンパイラが識別してくれないようです。
お礼
ご返答ありがとうございます。 いろいろ試した結果仕事用のプロジェクトでは無理でした。 仕事用では別名のファイル名にしたいということを相談中です。 ありがとうございました。