私がVisualStudioの使い方を真面目に勉強したのは6.0の頃で、それ以降はドキュメントもろくに読まずになんとなく使ってきたので、改めて最新の開発環境の勉強をしながら、覚えたことを書いておきます。
・プロジェクト
コンパイルするソースコード群や、そのためのコンパイラやリンカの設定等を管理するのがプロジェクトです。1つのプロジェクトが1つのEXEやDLLに対応します。
新しいファイルを作成してプロジェクトに登録する場合は、[プロジェクト]-[新しい項目の追加]を選びます。このとき、モジュール定義ファイル(.def)のようにプロジェクトの設定も変更する必要のあるファイルを追加した場合、自動的に設定されます。
既にディスク上にあるファイルを登録する場合は、[プロジェクト]-[既存項目の追加]を選びます。この方法で.defファイル等を登録しても、プロジェクト設定は変更されないので、自分で設定する必要があります。
・ソリューション
複雑なアプリケーションでは、単独のEXEだけで済まず、複数のEXEやDLLを含む場合があります。そのようなアプリケーションでは複数のプロジェクトを管理する必要があり、そのために複数のプロジェクトを束ねるのがソリューションとなります。
プロジェクトを1つしか含まないソリューションはスタンドアロンプロジェクトと呼ばれ、[オプション]-[プロジェクトおよびソリューション]-[全般]の「常にソリューションを表示」のチェックが外れていると、ソリューションエクスプローラにソリューションが表示されなくなり、表示がシンプルになります。(ソリューションに2つ以上のプロジェクトを加えると表示されるようになります)
複数のプロジェクトを含むソリューションでは、「プロジェクト依存関係」で各プロジェクトのビルドの順番や、依存関係を設定できます。ソリューション内にEXEプロジェクトとDLLプロジェクトがある場合、EXEプロジェクトの依存先にDLLプロジェクトを設定すると自動的にリンクされます。このときリンカの設定は必要なく、DLLからエクスポートしている関数はそのままEXEで使えるようになります。(ヘッダのincludeは必要)

