Visual StudioでC++を始めたいと思っても、どこから手を付けるかを調べることも難しいのではないでしょうか。そんなときは、1つの切っ掛けとして、WindowsのデスクトップアプリケーションやLinuxのコンソールアプリケーションを作成してみると良いでしょう。この記事は、
Visual StudioでC++を使用して、Linuxのコンソールアプリケーションを作成してみたい
というあなたのために用意しました。プロジェクトを作成し、ソースコードを少し修正することで、「Hello, world!」を表示してみます。思った以上に簡単ですよ。行ってみましょう!
こんな方に向けて書きました
- C++の開発環境について知りたい方
- Visual Studioでさまざまな環境のアプリを作成したい方
Visual StudioでC++を始める前に
そもそもVisual Studioとは
Visual Studioは、Microsoft社が開発している統合開発環境(IDE)です。統合開発環境は、ソースコードを書くコードエディタ、実行可能ファイルを作成するコンパイラやリンカ、デバッグに便利なデバッガなどで構成されています。
VIsual Studioの基本については以下の記事で詳しく解説していますので、ぜひ参考にしてください。
Visual Studio 2017のインストール
C++を始めるには、Visual Studio 2017をインストールする方法があります。最新版のVisual StudioやCommunityのインストールに関しては、以下の記事を参考にしてください。
Visual Studio C++でWindowsアプリを開発してみよう
それでは、お待たせしました。Visual StudioでC++を使用して、Windowsのデスクトップアプリケーションを作成してみましょう。もちろん、表示する文字列は「Hello, world!」です。
プロジェクトを作成しよう!
まずはWindowsデスクトップアプリケーションのプロジェクトを作成しましょう。
(1)ファイルをクリックし、新規作成をクリックして、プロジェクトをクリックします。
(2)Visual C++をクリックし、Windowsデスクトップをクリックして、Windowsデスクトップアプリケーションをクリックします。
(3)名前を「WindowsHelloWorldProject」に修正し、参照をクリックしてソリューションを保存するフォルダを選択し、OKをクリックします。
これで「Windowsデスクトップアプリケーション」のプロジェクトが作成されました。
C++のプログラムを作成してみよう!
「Windowsデスクトップアプリケーション」のプロジェクトを作成すると、自動的にデスクトップアプリケーションのひな形が作成されます。このひな形に肉付けをしていけば、任意のデスクトップアプリケーションを作成できるという仕組みです。
上で予告していたとおり、ウィンドウの中央に「Hello, world!」を表示するソースコードを追加しましょう。
(1)「WindowsHelloWorldProject.cpp」が表示されていることを確認し、「// TODO: HDC を使用する描画コードをここに追加してください…」の次の行に、以下のソースコードを入力します。
RECT rect; GetClientRect(hWnd, &rect); DrawText( hdc, TEXT("Hello, world!"), -1, &rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE );
実際に入力した画面は以下のようになります。
C++のコンパイルと実行
C++の場合は、ソースコードのコンパイル(プロジェクトのビルド)と実行が必要です。Visual Studioを使用している場合は、「デバッグの開始」を選択すると、(必要に応じてファイルを保存して)ソースコードのコンパイルと、デバッグ実行を行えます。
(1)デバッグをクリックし、デバッグの開始をクリックします。
(2)はいをクリックします。
Windowsのデスクトップアプリケーションが起動し、ウィンドウの中央に「Hello, world!」と表示されます。
このアプリケーションには、メニューもいくつか用意されています。ファイルをクリックし、アプリケーションの終了をクリックすると、アプリケーションが終了します。また、ヘルプをクリックし、バージョン情報をクリックすると、ダイアログが表示されます。
試しに、ウィンドウの大きさを変えてみたり、メニューを操作してみたり、ウィンドウの左上のアイコンや右上のアイコンをクリックしてみてください。普通のアプリケーションのように動作することが確認できたでしょうか?
上で追加したソースコードは、ウィンドウの中央に「Hello, world!」を表示するという意味ですので、その他の機能に関しては、Visual Studioが自動的に作成した機能になりますね。
作成したアプリケーションを他のWindows PCで動作させる
作成したアプリケーションを他のPC(以降、動作用のPC)で動作させる場合は、設定が必要です。設定を省略すると、以下のようなメッセージが表示され、アプリケーションは動作しません。
コンピューターにucrtbased.dllがないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。
コンピューターにVCRUNTIME140.dllがないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。
前者のメッセージが表示された場合は、開発用のPCでReleaseに設定を変更して、コンパイルし直しましょう。後者のメッセージが表示された場合は、動作用のPCで、Visual Studio 2017 の Microsoft Visual C++ 再頒布可能パッケージをインストールして、実行し直しましょう。
なお、再配布可能パッケージをダウンロードするときには、開発用のPCで設定した内容にあわせて、「x64」か「x86」を選択する必要があります。まずは、開発用のPCで必要な設定を紹介します。
(1)「Debug」をクリックし、「Release」をクリックします。
(2)「x86」と表示されていることを確認します。
ここの設定によって、他のPCに「Visual Studio 2017 の Microsoft Visual C++ 再頒布可能パッケージ」をインストールするときに、「x64」をインストールするか、「x86」をインストールするかが決まります。
たとえば、「x86」に設定した場合は、他のPCに「Visual Studio 2017 の Microsoft Visual C++ 再頒布可能パッケージ」の「x86」をインストールする必要がある、という仕組みです。
(3)「C++のコンパイルと実行」で説明した操作で、アプリケーションを実行します。開発用のPCでアプリケーションが実行されます。
(4)実行可能ファイルを動作用のPCにコピーします。
今回のプロジェクトの場合は、「(ソリューションの保存フォルダ)WindowsHelloWorldProjectRelease」フォルダに作成された「WindowsHelloWorldProject.exe」を、他のPCにコピーします。
(5)動作用のPCで、「WindowsHelloWorldProject.exe」を実行します。
「コンピューターにVCRUNTIME140.dllがないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。」
と表示されたときは、以下の手順に従って、「Visual Studio 2017 の Microsoft Visual C++ 再頒布可能パッケージ」をインストールします。
(1)「Visual Studioのダウンロード」のサイトにアクセスし、「x86」を選択して、「ダウンロード」をクリックします。
開発用のPCで「x86」の代わりに「x64」を選択した場合は、ここでも「x64」を選択してダウンロードする必要があります。
(2)ダウンロードした「VC_redist.x86.exe」を実行します。
(3)「ライセンス条項および使用条件に同意する」をチェックし、「インストール」をクリックします。
(4)「閉じる」をクリックします。
(5)開発用のPCからコピーした「WindowsHelloWorldProject.exe」をダブルクリックします。
実行できたでしょうか?引き続きエラーメッセージが表示された場合は、「Visual Studio 2017 の Microsoft Visual C++ 再頒布可能パッケージ」のバージョンを確認してください。
どうにもうまくいかないときは、「x86」も「x64」もインストールするという手もありますので、試してみてください!
Visual Studio C++でLinuxアプリを開発してみよう
次に、少し難しいことに挑戦してみましょう。WindowsにインストールしたVisual StudioでC++を使用して、Linuxのコンソールアプリケーションを作成してみます。
ここでも、表示する文字列は「Hello, world!」です。
プロジェクトを作成しよう!
まずは「Visual Studioインストーラー」を起動して、Linuxアプリを開発するために必要なモノをインストールします。
(1)「ファイル」をクリックし、「新規作成」をクリックして、「プロジェクト」をクリックします。
(2)「Visual Studioインストーラーを開く」をクリックします。
(3)「C++によるLinux開発」をチェックして、「変更」をクリックします。
(4)「続行」をクリックします。
インストールが終了すると、Visual Studio 2017が再起動します。
(5)「ファイル」をクリックし、「新規作成」をクリックして、「プロジェクト」をクリックします。
(6)「Visual C++」 → 「クロスプラットフォーム」 → 「Linux」の順にクリックして、「コンソールアプリケーション(Linux)」をクリックします。
(7)「名前」を「ConsoleHelloWorldApplication」に修正し、「参照」をクリックしてソリューションを保存するフォルダを選択し、「OK」をクリックします。
これで「コンソールアプリケーション(Linux)」のプロジェクトが作成されました。続けて、作成したアプリを実行するLinuxサーバーを指定します。具体的には、Linuxサーバーのホスト名や接続するための設定を行います。
(8)「ツール」をクリックし、「オプション」をクリックします。
(9)「クロスプラットフォーム」をクリックし、「接続マネージャー」をクリックして、「追加」をクリックします。
(10)LinuxサーバーにSSHで接続するための情報を設定し、「接続」をクリックします。
※Ubuntu 16.04 LTS Desktopに接続する場合は、openssh-serverをインストールしたり、sshdを起動したりする必要があります。
(11)「OK」をクリックします。
これで準備ができました。
C++のプログラムを作成してみよう!
「コンソールアプリケーション(Linux)」のプロジェクトを作成すると、Windowsアプリのときと同様に、自動的にコンソールアプリケーションのひな形が作成されます。
このひな形に肉付けをしていけば、任意のコンソールアプリケーションを作成できるという仕組みです。
上で予告していたとおり、単純に「Hello, world!」を表示するソースコードを追加しましょう。
(1)「main.cpp」をクリックし、「printf(“hello from ConsoleHelloWorldApplication!n”);」の行を、以下のソースコードに書き替えます。
printf("Hello, world!");
実際に入力した画面は以下のようになります。
C++のコンパイルと実行
いよいよ、ソースコードのコンパイル(プロジェクトのビルド)と実行です。
Visual Studioを使用している場合は、「コンソールアプリケーション(Linux)」を作成しているときも、「デバッグの開始」を選択すると、(必要に応じてファイルを保存して)ソースコードのコンパイルと、デバッグ実行を行えます。
(1)「デバッグ」をクリックし、「デバッグの開始」をクリックします。
(2)「はい」をクリックします。
コンソールアプリケーションが実行されます。が、「Hello, world!」が表示されません。
(3)表示を確認するために、「デバッグ」をクリックし、「Linuxコンソール」をクリックします。
「Linux Console Window」が表示され、「Hello, world!」の表示が確認できます。
作成したアプリケーションをLinuxサーバーで実行する
ここで紹介した方法では、ソースコードのビルドやアプリケーションの実行は、Linuxサーバーで行われています。
Ubuntu 16.04 LTS Desktopの場合は、「~/projects/ConsoleHelloWorldApplication/bin/x64/Debug」に「ConsoleHelloWorldApplication.out」が作成されていました。
Ubuntuにログインして、上記の「ConsoleHelloWorldApplication.out」を実行しても、「Hello, world!」と表示されることが確認できます。
まとめ
今回は、Visual Studioを使用して、C++でWindowsのデスクトップアプリケーションを作成する操作と、C++でLinuxのコンソールアプリケーションを作成する操作を説明しました。
どちらの場合もプロジェクトを作成すると、ひな形が作成されますので、アプリケーションを起動するだけでしたら、実は、ソースコードを追加する必要はありません。
今回は、「Hello, world!」を表示しただけですが、これをアプリケーションを作成する切っ掛けにしていただけると嬉しいです。
たとえば、Windowsのデスクトップアプリケーションを拡張するなら、よく見る右クリックメニューを表示するようにしてみるのもいいでしょう。
頑張ってください!