本実習では,Microsoft Visual Studioを用いてプログラム開発を行う.
言語はC/C++を用いる.

Visual Studioを用いると様々な種類の(Windowsらしい)アプリケーションを開発できるが,
本実習で作成するプログラムはシンプルなコンソールアプリケーションである.

最初にVisual Studioによる開発の手順を解説する.

1 Visual Studio 2012の起動

Windowsのスタートメニューを開く.
スタートメニューの「1. Microsoft」の中に「Visual Studio 2012」があるので
これをクリックして起動する.

vs01

2 プロジェクトの作成

メニューから ファイル > 新規作成 > プロジェクト… を選択する.

vs01a

あるいは,スタートページの左上にある開始の下の
新しいプロジェクト… を選択してもよい.

vs01b

いずれを選択しても,「新しいプロジェクト」ダイアログが開く.
ここでの設定は以下の通り.

vs02

  1. 左のメニューから Visual C++ を選択する.
  2. 中央のリストから「Win32 コンソール アプリケーション」を選択する.
  3. 名前は適切なプロジェクト名を付ける.ここでは仮に hello とする.
  4. 場所はプロジェクトを保存するフォルダである.自身の環境に合わせて適宜変更する.
    z:の中のフォルダergo15に保存するならば,z:\ergo15 となる.
  5. 「ソリューションのディレクトリを作成」のチェックボックスを外す.

以上の設定をして,「OK」をクリックする.

2.1 (余談) ソリューションとプロジェクトについて

Visual Studioには,大規模なアプリケーション開発に対応するために,
複数のプログラムを管理する機構が備わっている.
具体的には,一つのソリューションの中に,複数のプロジェクトが含まれる
という構成が標準的であり,フォルダの構造もこれに対応している.
しかし,好みの問題だが,小規模なプログラム作成でフォルダ階層が
深くなるのは扱いにくいので,ここではソリューションのディレクトリを作成しない
ものとしている.

なおディレクトリとフォルダは同じものと考えてよい.

2.2 プロジェクトの設定

「Win32 アプリケーション ウィザード – (プロジェクト名)」ダイアログで以下の設定を行う.

  1. 左のメニューから アプリケーションの設定 を選択する(あるいは「次へ」をクリックしてもよい).
  2. 追加のオプション の「空のプロジェクト」にチェックを入れる.
  3. 同じく追加のオプションの「Security Development Lifecycle (SDL)チェック」のチェックを外す.

vs02a

vs03

3 ソースコードの記述

プロジェクトが開かれる.最初は何もない.

3.1 ソースコードの追加

右の ソリューション エクスプローラー (開発するプログラムに関わるファイルの一覧が表示される)の,「hello (プロジェクト名)」(「ソース ファイル」でもよい)を右クリックし,メニューから 追加 > 新しい項目… を選択する.

vs04

「新しい項目の追加 – (プロジェクト名)」ダイアログが開く.

  1. 左のメニューから Visual C++ を選択する(おそらくデフォルトでそのようになっている).
  2. 中央のリストから「C++ ファイル (.cpp)」を選択する.C言語の機能しか使う予定は無くても,拡張子は.cppにしておく.
  3. 名前は適切なソースファイル名を付ける.ここでは hello.cpp とする.

vs05

以上の設定をして,「追加」をクリックする.「hello.cpp」タブが現れ,ソースコードの入力が可能となる.

3.2 プログラムの作成

ソースコードを記述する.

#include <iostream>

using namespace std;

int main(void)
{
	cout << "hello, world" << endl;

	return 0;
}

統合開発環境の利点の一つには,エディタ内で補完が効くこと,組にして入力すべき記号(C言語なら{と}など)が自動的に入力されること,予約語(intなど)が色分けされること,
などによって,文法エラーの発生確率が低くなることが挙げられる.

4 コンパイルと実行

4.1 コンパイル(ビルド)

Visual Studioでは実行ファイルの作成をビルドと呼ぶ.コンパイルはビルドの一部である.メニューから ビルド > ソリューションのビルド を選択すると,実行ファイルが生成される.

vs06

エラーがある場合,ウィンドウ下部にエラーの一覧が表示される.エラーをダブルクリックすると当該行にジャンプするので,修正する.エラーはソースコードの前の方のエラーから修正することが一般的である.前の方のエラーが修正されると,引き続いて発生していた後ろの方のエラーも直ることが多い.

ビルドが正しく終了すると,通例,以下のようなメッセージが出る.

1>------ ビルド開始: プロジェクト:hello, 構成:Debug Win32 ------
1>  hello.cpp
1>  hello.vcxproj -> C:\Users\imura\Desktop\hello\Debug\hello.exe
========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========

4.2 実行

メニューバー下の「ローカルWindowsデバッガー」をクリックするか,メニューから デバッグ > デバッグ開始 を選択するとプログラムが実行されるが,一瞬黒色のターミナルが出て,すぐ終了してしまうため,実行結果がわからない.
メニューから デバッグ > デバッグなしで開始 を選択すると,終了時に「続行するには何かキーを押してください . . .」と出て結果を見ることができる.

vs07

デバッグなしで開始にはショートカットキーとしてCtrl+F5が割り当てられているので,慣れてくればこれを使うのが便利.

実行結果は以下のようになる.

vs08

5 終了と再開

ここで一度Visual Studioを終了してみる.メニューから ファイル > 終了 を選択する.
終了すると,helloディレクトリの中にソースコード以外にも複数のファイルが生成されていることがわかる.
開発を再開するには拡張子が.slnのソリューションファイルをダブルクリックする.
この例ではhello.slnである.

エクスプローラの拡張子表示設定をしていないと,どれが.slnファイルかとてもわかりにくいので要注意.
確認しておく.

Visual Studio 2012をタスクバーにピン留めしておくと,右クリックから最近使ったソリューションが選べるので便利である.

6 C++について若干の説明

C++は,C言語にオブジェクト指向プログラミングを容易にする拡張を加えた
プログラミング言語である.

  • iostream は stdio を代替する標準入出力ライブラリである.
    なお,C++では標準ライブラリのヘッダには拡張子 .h が付かない.
  • using namespace std は名前空間 std を省略可能にする.
    名前空間はシンボルの衝突を回避するための仕組みであるため,
    using namespace の乱用は推奨されないが,本実習では簡単のために使用する.
    using namespace std とソースコード冒頭で記述することで,
    std::cout (名前空間stdのcout)を cout と書くことができる.
  • cout は標準出力(コンソール画面)を表す.演算子<<はC言語では左シフトで
    あるが,演算子オーバーロードというC++の機構により,演算子の右オペランドを
    標準出力に送るという機能が実装されている.