C++一年程度の初心者です。VisualC++を使って、空のプロジェクトからアプリケーションを作成しているのですが、その時生成されるプロジェクトのファイル構造が釈然としません。
例えば空のプロジェクト[test_A]を作成し、その中に[Source.cpp]というファイルを作成、ビルドした場合、test_Aファイルの中には、Debug/Rereaseフォルダが各2つあります。その他にも重複する拡張子のファイルが見当たります。また、同じプロジェクト名のフォルダで階層が妙に深くなっているように感じて気持ちが悪いです。
だからどうだと言うわけでもないのですが、できれば階層を1段浅くして、スッキリシンプルなファイル構造にしたいなと思い質問させていただきました。
このファイル構造には理由があるのでしょうか…?それとも簡単に自分好みに変更できるのでしょうか…?どなたか解答をよろしくお願いいたします。
同じプロジェクト名のフォルダ階層が妙に深くなっているという違和感を感じるのは分かる気がします。
階層が深くなっている理由としては、Visual Studio のプロジェクトの管理方法として
という2つのコンテナで管理していることに由来します。
(※ 上記の画面イメージは、イメージが湧きやすいように、プロジェクト名とソリューション名を別のものにしています。)
一般的には、1ソリューションにつき、複数のプロジェクトが含まれることが多い為、上記のような階層が推奨されますが、シンプルなプロジェクトであれば、ソリューションの階層を作成しないという方法を取ることもできます。
その場合は、新しいプロジェクトを作成するときに「ソリューションのディレクトリを作成」のチェックを外すことで、フラットな階層のプロジェクトが作成可能です。
ちなみに、余談ですが、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