【第6回】複数のプロジェクトを管理するには

次回の記事

terapotan.hatenablog.jp

前回の記事

terapotan.hatenablog.jp

連載記事一覧

terapotan.hatenablog.jp

ソリューションとプロジェクト

Visual Studio2017では「ソリューション」と「プロジェクト」という単位でソースコードを管理しています。
「ソリューション」と「プロジェクト」の関係は、ちょうど下の図のようになっています。

alt

図にある通り、ソリューションの中に複数のプロジェクトを入れることが出来ます。

複数のプロジェクトを作る場面

いくつかありますが、一つ挙げるとすれば「プログラムの自動テストを行う時」です。

プログラムの自動テストを行うためには、コードを書きソースコードをどこかに保存しなければいけません。

この時「テストしたいプログラム」が入ったプロジェクトと、「自動テストを行うプログラム」が入ったプロジェクトを同じソリューションに入れて管理すれば二つのプログラムをまとめて管理することが出来ます。

ソリューションの中にプロジェクトを2つ作成する

今回はソリューションの中にプロジェクトを二つ作成し、一方のプロジェクトからもう一方のプロジェクトの関数を呼び出してみましょう。

プロジェクトの作成

まずは 第4回を参考にして新規プロジェクトを作成してください。
プロジェクトを作成したらソリューションエクスプローラーのソリューションを右クリックして、追加(D)-新しいプロジェクトをクリックします。
alt

今回はコンソールアプリケーションを選択します。
プロジェクトの作成に成功すると、ソリューションエクスプローラーが次のように表示されます。
alt

ソリューション・プロジェクトごとのビルド

既に第4回でビルドの方法は紹介しましたが、改めてプロジェクト単位・ソリューション単位でビルドする方法を紹介します。
プロジェクト単位でビルドするには、ビルドしたいプロジェクトを選択し(上の画像ではBlogTestConsoleApplication1)画面上部のメニューからビルド(B)をクリックしてプルダウンメニューを開きます。
表示されたメニューの[ビルドしたいプロジェクト名]のビルドをクリックするとビルドが実行されます。
alt

ソリューション単位でビルド(全てのプロジェクトでビルドを実行)するには先ほどのプルダウンメニューからソリューションのビルドをクリックするか、Ctrl+Shift+Bを押すことによって実行できます。

設定を変更する

以下の内容を実行する前に、ConsoleApplication1のプロパティを開きC/C++-詳細設定-必ず使用されるインクルードファイルに、pch.hを入力します。

ファイルを追加・変更する

BlogTestプロジェクトにtest.cpptest.hを作成し ConsoleApplication1.cppの内容を変更してください。

下のソースコードは、上から順にtest.cpptest.hConsoleApplication1.cppの内容となっています。

#include "test.h"

int test(int num) {
    return num + 1;
}
#pragma once
int test(int num);
#include "../BlogTest/test.h"
#include <iostream>

int main()
{
    std::cout << test(5); 
    return 0;
}

既存の項目を追加

このままでは、test関数をConsoleApplication1プロジェクトから呼び出すことは出来ません。

呼び出せるようにするためには、ConsoleApplication1プロジェクトをソリューションエクスプローラーから右クリックし、追加(d)-既存の項目(G)を押してtest.cppを選択する必要があります。

alt

実行プロジェクトの選択

後は二つのプロジェクトをビルドし、実行するだけですが今回の場合実行するプロジェクトを指定する必要があります。

指定するダイアログを開くには、ソリューションエクスプローラーのソリューションを右クリックし、スタートアッププロジェクトの設定(A)をクリックします。
alt

すると下の画像のようなダイアログが開きますので、シングルスタートアッププロジェクト(S)の下にある値を変更してください。(今回の例であれば、ConsoleApplication1に変更します。)
alt

Ctrl+F5を押し6と書かれたコマンドプロンプトが表示されれば、成功です。

次回予告

次回は、Visual Studioでデバックを行う方法を紹介します。
7月3日に更新する予定です。

次回の記事

terapotan.hatenablog.jp

前回の記事

terapotan.hatenablog.jp

連載記事一覧

terapotan.hatenablog.jp