人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VisualStudioプロジェクトのフォルダ構成に関する質問です。

C++一年程度の初心者です。VisualC++を使って、空のプロジェクトからアプリケーションを作成しているのですが、その時生成されるプロジェクトのファイル構造が釈然としません。

例えば空のプロジェクト[test_A]を作成し、その中に[Source.cpp]というファイルを作成、ビルドした場合、test_Aファイルの中には、Debug/Rereaseフォルダが各2つあります。その他にも重複する拡張子のファイルが見当たります。また、同じプロジェクト名のフォルダで階層が妙に深くなっているように感じて気持ちが悪いです。

だからどうだと言うわけでもないのですが、できれば階層を1段浅くして、スッキリシンプルなファイル構造にしたいなと思い質問させていただきました。
このファイル構造には理由があるのでしょうか…?それとも簡単に自分好みに変更できるのでしょうか…?どなたか解答をよろしくお願いいたします。

●質問者: onigiriTurnA
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● cx20
ベストアンサー

同じプロジェクト名のフォルダ階層が妙に深くなっているという違和感を感じるのは分かる気がします。
階層が深くなっている理由としては、Visual Studio のプロジェクトの管理方法として

という2つのコンテナで管理していることに由来します。

f:id:cx20:20140127053332p:image
f:id:cx20:20140127053334p:image
f:id:cx20:20140127055251p:image
(※ 上記の画面イメージは、イメージが湧きやすいように、プロジェクト名とソリューション名を別のものにしています。)
一般的には、1ソリューションにつき、複数のプロジェクトが含まれることが多い為、上記のような階層が推奨されますが、シンプルなプロジェクトであれば、ソリューションの階層を作成しないという方法を取ることもできます。

その場合は、新しいプロジェクトを作成するときに「ソリューションのディレクトリを作成」のチェックを外すことで、フラットな階層のプロジェクトが作成可能です。

f:id:cx20:20140127053335p:image
f:id:cx20:20140127053337p:image
f:id:cx20:20140127053336p:image
ちなみに、余談ですが、Visual C++ 6.0 の時代は、*.dsp(プロジェクトファイル)と *.dsw(プロジェクトワークスペース、現在の、*.sln に相当)が、同一フォルダに作成されていました。
Visual Studio.NET 2002(VC++7.0) より、VC# や VB.NET と同様に、ソリューションエクスプローラの表示内容と同じフォルダ構成になるよう、方針が変わったようです。
恐らくは、仮想的な階層概念(ソリューションエクスプローラー)と物理的な階層構造(エクスプローラー)で同じ、階層構造をしていた方が、管理し易いという判断になったのではないかと思います。

<参考情報>
■ ソリューションとプロジェクトの基礎
http://msdn.microsoft.com/ja-jp/library/b142f8e7.aspx

■ コンテナーとしてのソリューション
http://msdn.microsoft.com/ja-jp/library/df8st53z.aspx


onigiriTurnAさんのコメント
丁寧な回答ありがとうございます!なるほど、最初にどんな階層にするかは簡単に選べるのですね!見落としていました。 また過去の経緯も含めて説明いただき、理解が深まりました! ソリューションとプロジェクトという概念についても、これまで雰囲気しか分かっていなかったので、参考URLも非常にためになりました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ