第一回-02 コンソールアプリケーションとGUIアプリケーション

本ページでは本講義で学ぶ内容の概要を紹介する。

使用環境

本講義で取り扱う環境について以下にまとめる。

準備1~拡張子の表示

本演習を行う前の準備として、Windowsで拡張子を表示する設定を行おう。
今後PCを使う上で、ファイルの拡張子を表示した方が便利なためである

エクスプローラーを起動し、下図のように「表示」タブの「ファイル名拡張子」と「隠しファイル」にチェックをいれる



すると、「ファイル名拡張子」にチェックをいれた効果で、下図のようにファイルに拡張子が表示されるようになる。



また、「隠しファイル」にチェックをいれた効果で、以下のように、エクスプローラーで表示されるファイル/フォルダが増える。



以上の設定はコンピュータについて学ぶ上で基本であるので、今後新しい PC を購入する機会があったら、最初のこの設定を行うようにしよう。


準備2~Mircosoftアカウントの作成

次に、Microsoftアカウントを作成しよう。本演習で用いる Visual Studio の無料版では、Microsoftアカウントが必須だからである。

まず、Visual Studio のダウンロードページを開いてみよう。
ページ右上部にアカウントを示すアイコンがある。クリックしてみよう。



もし、Miscrosoftアカウントを既に持っているならばログインしてみよう。 Miscrosoftアカウントは、Windows のログインや、OneNote、OneDriveのようなMicrosoftのサービスで使われる。
これらのサービスを使っている学生はそのアカウントでログインできるはずである。

ただし、Windows のログインは、Microsoftアカウントを使ったログインとそうでないログインがあるので、 Windowsにログインできるからと言ってここでログイン出来るとは限らないことに注意。

もし自分がMicrosoftアカウントを持っていないと思ったら、下図の「作成」リンクをたどり、アカウントを作ろう。



アカウントを作り、先程のページにログインしたら、アカウントアイコンをクリックしたときに下図のようにユーザー情報が表示されるだろう。
それを確認して次に進もう。




Visual Studio 2019 のインストール

ここからは Visual Studio コミュニティエディションのインストール法を解説する。

まず、Visual Studio のダウンロードページで 下図のようにVisual Studio 2019 コミュニティエディションをダウンロードしよう。
なお、Visual Studio のバージョンはページを開いたときの最新のものが表示されるので、その最新バージョンをインストールするのが良いだろう。



以下のようなファイルがダウンロードされるので、ダブルクリックしてインストールを開始しよう。



インストール時に下図のように にチェックをいれてから「インストール」ボタンをクリックしよう。 インストールに8.23GBの領域が必要であることも見て取れるであろう。
なお、上記2つのうち2つ目は C++ で GUI をもったアプリケーションを開発するために必要なものである。



インストールにはしばらくかかる。最終的に下図のように再起動をうながされるので再起動しよう。



再起動が済んだら、Windows のメニューより Visual Studio を起動しよう。



すると、以下のような画面が現れるので、「サインイン」をクリックし、本ページ上部で作成した Microsoft アカウントでサインインしよう。



サインインに成功すると下図の状態になる。その後、Visual Studio が起動するが、いったん全てのウインドウを閉じて先に進もう。




コンソールアプリケーション

まず、プログラミングの基本と言えるコンソールアプリケーションについて紹介する。
まずはこちらで作成済のものをダウンロードしてビルドから実行までの流れを確認してみよう。

まず、筆者により記述済みのファイルをまとめて圧縮した ConsoleApplication1.zip をダウンロードしよう。

ダウンロードした ConsoleApplication1.zip の上で右クリックして「すべて展開」を選択し、現れたウインドウで「展開」ボタンをクリックして先に進めよう。
それにより、圧縮されていた複数のファイルが展開される。



なお、展開用ソフトウェアが別途インストールされている場合、圧縮ファイルの展開方法が異なる場合がある。
例えば、WinRAR という展開ソフトウェアがインストールされている場合、展開方法は下図のように「右クリックして『解凍』」である。
このように「展開」のことを「解凍」と呼ぶこともあることに注意。



どのような方法をとるにせよ、下図のように圧縮ファイルの他に展開されたフォルダができた状態にならないと、以後の演習には進めないことに注意。
典型的な誤りとしては「圧縮ファイルを展開せずに、ダブルクリックして先に進む」というケースがある
多くの場合、圧縮ファイルをダブルクリックしても展開はされないのである。



さて、展開されて現れたフォルダの中に入ると、下図のように ConsoleApplication1.sln というファイルが見つかる。ダブルクリックして開いてみよう。
拡張子の sln とは「ソリューション」の略で、Visual Studio ではこの「ソリューション」によって様々なファイルを管理している。



すると、以下のような画面が現れることがある。Visual Studio 2019 を選択してOKするとよい。
その際、「常にこのアプリを使って .sln ファイルを開く」にチェックを入れておくと良いだろう。



ファイルが開いた様子が下図である。
ただし、右側の「ソリューションエクスプローラー」 の階層構造を辿って ConsoleApplication1.cpp をダブルクリックし、中央部にプログラムの記述を表示したことに注意。
プログラムの中身は後回しにして、まずは先へ進もう。



メニューから「ビルド」→「ソリューションのビルド」を選択する。エラーが出なければ先に進む。

Visual Studio の将来のバージョンの情報
より新しい Visual Studioでエラーが出た場合、メニューから 「プロジェクト」→「ConsoleApplication1 のプロパティ」→「全般」→「Windows SDKバージョン」を選択できるものに変更することでエラーが消えることがあります。




Visual Studio 左下部の出力部に下図のように「1 正常終了、0 失敗…」と表示されれば成功である。
これは「正常終了したものが1個、失敗したものが0個、…」という意味である。



上図のようにエラーが出なかったら、下図のようにメニューから「デバッグ」→「デバッグなしで開始」を選択する。



すると、以下のようにターミナルが開き「はじめてのコンソールアプリケーションです」と表示される。
このターミナルのことを「コンソール」とも言う。



なお、このプログラムの本体は以下のようになっている。
このような記述により、コンソールに文字が表示されるというわけである。

#include <iostream>

int main()
{
	std::cout << "はじめてのコンソールアプリケーションです\n";
}

なお、一般に C/C++ の教科書はこのようなコンソールアプリケーションが対象になっている

本講義では教科書は指定しないが、プログラミングを深く学びたいのであれば手元に一冊参考書を置いておくのも良いであろう。
その場合、簡単であることを強調した本よりは信頼性の高い本を選ぶことを推奨する
例えば、以下の著者の本は信頼性が高いと言われることが多いように思う。

「制御構造 (for, while による繰り返しや if 文による分岐) 、関数、ポインタ」などについてまで学びたいのであれば C 言語の本を、
それらを含み、さらに「クラスを用いたオブジェクト指向プログラミング」まで学びたいのであれば C++ の本を買うのが良いだろう。

[C 言語]
[C++]

GUIアプリケーション

次に、GUI アプリケーションについて紹介しよう。GUI とは Graphical User Interface の略であり、
ボタンやメニューを持ったグラフィカルなプログラムのことを取り扱うというわけである。
まずはこちらで作成済のものをダウンロードして流れを確認してみよう。

imageopen.zip をダウンロードしよう。そして、ダウンロードした imageopen.zip を先程と同様にマウス右クリックから展開する。
展開によりフォルダの中の ImageOpen.sln と言うファイルを ダブルクリックして Visual Studio を起動しよう。

そして、
「ビルド」→「ソリューションのビルド」
および
「デバッグ」→「デバッグ開始」
を実行しよう。以下のような GUI プログラムが起動する。



なお、このプログラムは、上で解説したようにVisual Studio のインストール時に「最新の v142 ビルドツール用 C++ MFC」にチェックをいれておかないとビルドに失敗する。
追加インストールもできるので試してみると良い。

補足
こちらもメニューから 「プロジェクト」→「ImageOpenのプロパティ」→「全般」→「Windows SDKバージョン」 を選択できるものに変更しないとエラーが出ることがあるかもしれない。

このプログラムは画像を開くプログラムになっているので、「開く」ボタンをクリックし、
ImageOpenフォルダに含まれる birds_in_australia.jpg を読み込んでみよう。
すると、以下のように左側にオリジナルの画像、右側にその左右対称な鏡像の画像が表示される。

すなわち、このプログラムは画像を読み込み、その左右対称な鏡像を作成して それぞれ表示するプログラムである。



このようなGUIプログラムであってもやはり以下のように C/C++ で記述されている。
ソリューションエクスプローラーの階層構造をたどり、ImageOpenDlg.cpp を開いて該当箇所を探してみよう。
以下の赤線で示した部分は、本演習でいずれ変更してもらうことになる。



ただし、このようなプログラミングを学ぶには C/C++ についての教科書だけでは不足であり、Visual C++ の教科書でも学ばねばならない。例えば、以下の本がある。
また、Windows において C++ で GUI をもったアプリケーションを作る方法には などがある。 ここまで解説すると、皆さんはコンソールアプリケーションではなく GUI アプリケーションを学びたくなるのではないだろうか。
しかし、残念ながらGUIアプリケーションを作成するにはコンソールアプリケーションの知識は必須である

すなわち、学習の順番としては
「コンソールアプリケーション」→「GUIアプリケーション」
と進めるのが自然な流れである。

そのため、本演習では「コンソールアプリケーション」の学習をメインに講義を進めるが、
皆さんが興味を失わないよう、適宜 GUI アプリケーションの例も盛り込む予定である。



←第一回-01 何故プログラミングを学ぶのか第一回-03 初めての C/C++ プログラミング(コンソールアプリケーション編)→

非情報系学生のための C/C++ 入門に戻る