visual c++ 2010 epxress の使い方 for 「プログラミ...

22
Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912 静岡理工科大学総合情報学部コンピュータシステム学科 飯倉宏治 0.はじめに このドキュメントでは、Visual C++ 2010 Express のインストールから .exe の作成までを簡単に説明します。本ド キュメントの構成は以下のようになっています: 1.インストールとユーザ登録 2.ソリューションとプロジェクト 3.ソースコードの追加 4.開発サイクル 5.まとめ 1.Visual C++ 2010 Express のインストールとユーザ登録 次の URL にアクセスして http://www.microsoft.com/japan/msdn/vstudio/express/ Visual C++ 2010 Express をダウンロードおよびインストールして下さい。 ※もしくは .iso イメージを以下のページよりダウンロードし、DVD に保存し、それを用いてインストールします。 http://www.microsoft.com/japan/msdn/vstudio/2010/product/express/offline.aspx 30 日以上使用するので、「ヘルプ」→「製品の登録」をクリックして、ユーザ登録を済ませておいて下さい。 ※ユーザ登録しないと 30 日後は Visual C++ 2010 Express を使用することができなくなります。 - 1 -

Upload: others

Post on 12-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912

静岡理工科大学総合情報学部コンピュータシステム学科 飯倉宏治

0.はじめに このドキュメントでは、Visual C++ 2010 Express のインストールから .exe の作成までを簡単に説明します。本ド

キュメントの構成は以下のようになっています:

1.インストールとユーザ登録2.ソリューションとプロジェクト3.ソースコードの追加4.開発サイクル5.まとめ

1.Visual C++ 2010 Express のインストールとユーザ登録 次の URL にアクセスして

http://www.microsoft.com/japan/msdn/vstudio/express/

Visual C++ 2010 Express をダウンロードおよびインストールして下さい。

※もしくは .iso イメージを以下のページよりダウンロードし、DVD に保存し、それを用いてインストールします。

http://www.microsoft.com/japan/msdn/vstudio/2010/product/express/offline.aspx

30 日以上使用するので、「ヘルプ」→「製品の登録」をクリックして、ユーザ登録を済ませておいて下さい。

※ユーザ登録しないと 30 日後は Visual C++ 2010 Express を使用することができなくなります。

- 1 -

Page 2: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

登録を済ませたら、次は「ツール」→「設定」→「上級者用の設定」をクリックし、上級者モードにして下さい。

2.ソリューションとプロジェクト Visual C++ 2010 Express におけるソリューションとはプロジェクトを束ねるものであり、ひとつの Visual C++

2010 Express で開くことができるソリューションはひとつのみです(同時に複数の Visual C++ 2010 Express を起

動すれば、それぞれで異なるソリューションファイルを開くことができます)。ソリューションは .sln という拡張子を

持つファイルとして保存されます。

 次にプロジェクトですが、これは実行形式を生成するための各種の設定を保存するものです。ソースコードなど

のファイルもこのプロジェクトの情報として保存されます。プロジェクトは .vcxproj という拡張子を持つファイルと

して保存されます。

2.1 ソリューションとプロジェクトの関係 ソリューションとプロジェクトの関係を示すと以下のようになります:

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

ソースコード1-1.cppソースコード 1-2.cpp

:ヘッダファイル A.hヘッダファイル B.h

:プロジェクト2

ソースコード 2-1.cppソースコード 2-2.cpp

:ヘッダファイル A.hヘッダファイル ε.h

:

- 2 -

Page 3: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

2.2 ソリューションとプロジェクトの作成 「ファイル」→「新規作成」→「プロジェクト」をクリックしてソリューションとプロジェクトの作成します。

 次のようなダイアログが表示されるので、左側の「インストールされたテンプレート」より、「Visual C++」をクリッ

クすると中央部分に各種のプロジェクトのテンプレートが表示されますので、その中から「Win32 コンソールアプ

リケーション」をクリックします。

※まだ「OK」ボタンはクリックしないで下さい。

 ダイアログの下の方に、「名前」「場所」「ソリューション名」という項目がありますので、それぞれ入力します。

- 3 -

Page 4: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

 名前はソリューションと同時に作成するプロジェクトの名前を入力します。ここでは Lesson1 というプロジェクト

名にしてみましょう。

 次に場所ですが、これはソリューションファイルと各プロジェクトファイルが格納されるディレクトリを指定します。

キーボードから入力しても良いですが、右側にある「参照」ボタンをクリックするとディレクトリを指定するダイアログ

が開きますので、それを用いる事もできます。

 ソリューションおよびディレクトリの格納場所ですが、日本語や空白の入ったディレクトリ名を指定するのはおす

すめしません。Visual C++ 2010 Express ではこれら日本語や空白の入ったディレクトリにも対応しているよ

うですが、時々これらが原因と思われるトラブルに遭遇することがあります。プログラムや設定などは全く問題な

いのだが、ソリューションファイルやプロジェクトファイルが格納されているディレクトリが不適切であったという事

例が実際に存在します。プログラムや設定をいくら修正してもトラブルを解決することはできず、格納されている

ディレクトリを変更したら問題解決した、などという不毛な事例もあります。

 このような不毛な事態に遭遇しない為にも、日本語や空白の入ったディレクトリを指定するのはやめましょう。同

様の理由でデスクトップにソリューションファイルやプロジェクトファイルを保存するのもおすすめしません。

最後にソリューション名ですが、これはソリューションの名前を入力して下さい。

ここでは IntroductionToProgramming という名前にしてみます。

名前、場所、ソリューション名、全ての入力ができたら、ソリューション名の入力欄の右側にある「ソリューションの

ディレクトリを作成」というチェックボックスにチェックが入っている事を確認して「OK」ボタンをクリックします。

すると次のようなダイアログが表示されますので、現在のプロジェクト設定が「・コンソールアプリケーション」となっ

ていることを確認して「次へ」ボタンをクリックします。

- 4 -

Page 5: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

アプリケーションの設定ダイアログが開きますので、「追加のオプション」のところにある「空のプロジェクト」に

チェックを入れ「完了」ボタンをクリックします。

以上で、IntroductionToProgramming というソリューションと共に Lesson1 というプロジェクトが生成されま

す。

2.3 ソリューションディレクトリ

 今回、IntroductionToProgramming というソリューションを作成しましたが、作成時にソリューションのディレ

クトリも同時に作成するというチェックボックスクにチェックしたのを覚えていますでしょうか?これは指定した場所

にソリューションと同名のディレクトリを作成して、その中にソリューションのファイル-今回は

IntroductionToProgramming.sln というファイル-を作成せよ、という指示を出した事に他なりません。実際、

指定したディレクトリをみてみると、IntroductionToProgramming というディレクトリが出来ていて、かつ、その

中に IntroductionToProgramming.sln というファイルが生成されているのが確認できると思います。

指定したディレクトリIntroductionToProgramming ←ディレクトリ(ソリューションディレクトリ)

IntroductionToProgramming.sln

ソリューションの情報が含まれているディレクトリ(この例では IntroductionToProgramming)の事をソリュー

ションディレクトリと呼ぶことにします。

- 5 -

Page 6: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

IntroductionToProgramming ソリューションのソリューションディレクトリには Lesson1 というディレクトリがあ

るのも確認できるかと思います。

 これはソリューションの作成と同時に作成した Lesson1 プロジェクトのプロジェクトディレクトリです。ソリュー

ションと同様にプロジェクトもプロジェクトディレクトリの中にプロジェクトファイルが格納されています。実際に

Lesson1 ディレクトリの中をみてみると Lesson1.vcxproj というファイルが格納されているのが分かると思いま

す。

プロジェクトまで含めたディレクトリおよびファイルの配置状況を見てみるとこのような感じになります:

指定した場所 ←ディレクトリIntroductionToProgramming ←ディレクトリ(ソリューションディレクトリ)

IntroductionToProgramming.sln ←ソリューションファイルLesson1 ←ディレクトリ(プロジェクトディレクトリ)

Lesson1.vcxproj ←プロジェクトファイル

Visual C++ 2010 Express を終了後、再度、IntroductionToProgramming ソリューションを開く場合は、

この IntroductionToProgramming.sln を開いて下さい。

またソリューションディレクトリとプロジェクトディレクトリの関係ですが、必ずしも親子関係になっている必要はあり

ません。例えば、あるプロジェクトを他のソリューションと共有する場合などがそれにあたります。

- 6 -

Page 7: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

3.ソースコードの追加3.1 ソリューションエクスプローラの表示

「表示」→「ソリューションエクスプローラ」をクリックします。

するとソリューションエクスプローラが表示されます。

- 7 -

Page 8: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

ソリューションエクスプローラが画面の中途半端な位置に表示されていると作業しづらいので、もしそのような状

況になっている場合は、ソリューションエクスプローラのタイトルバーをドラッグして画面左側に配置する等してお

きましょう。

- 8 -

Page 9: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

3.2 ソースコードの追加

 Lesson1 プロジェクトにソースコードを追加します。ソリューションエクスプローラでみると Lesson1 プロジェク

トの下に「ソースファイル」「ヘッダーファイル」等のフォルダが表示されていると思います。この「ソースファイル」と

表示されている部分を右クリックし、「追加」→「新しい項目」をクリックします。

すると次のようなダイアログが表示されますので、中央部分のファイルの種類で「C++ ファイル」をクリックし、名

前のところに作成するソースコードの名前を入力します。ここでは Lesson1.cpp としておきます。

 場所の欄にはファイルを作成するディレクトリを入力しますが、すでに Lesson1 プロジェクトのプロジェクトディ

レクトリが入力されていると思いますので、何も修正せずに「追加」ボタンをクリックします。

- 9 -

Page 10: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

画面はこのようになり、ソリューションエクスプローラの Lesson1 プロジェクトのソースファイルフォルダ(フィルタ)

の下に Lesson1.cpp が追加されているのが確認できると思います。

また画面の中央部分には白い領域が表示され、そこにカーソル(キャレット)が点滅しており、そして左上には

Lesson1.cpp と書かれたタブも表示されていると思います。

この中央部分の大きな白い領域は、現在アクティブなタブ-つまり Lesson1.cpp の編集エリアとなります。ここ

に文字を入力し、Ctrl-S するか、Lesson1 タブの上で右クリックして「Lesson1.cpp の保存」をクリックすれば

Lesson1.cpp に入力した内容が保存されます。

- 10 -

Page 11: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

4.開発サイクル

 実際のソフトウェア開発では、

・ソースコード入力

・ビルド

・ビルドエラーの除去

・実行

・デバッグ(ソースコード修正)→「ビルド」に戻る

というステップを踏みます。

4.1 ソースコードの入力 C++ 言語(C 言語)を学ぶ前ですが、Visual C++ 2010 Expreess の操作を学ぶため、まずは以下のプログラム

を入力して下さい。

4.2 ビルド 今、みなさんが入力したものは .exe など、実行形式等の元となるもので、ソースコードと呼ばれます。ソース

コードの入力が完了したら、次はビルドと呼ばれる作業を行います。ビルドとはソースコードから実行形式等を作

成する事を指し、Visual C++ 2010 Express では、ソリューション全体に対してビルドを行う事も、それぞれのプロ

ジェクトに対してビルドを行う事ができます。

- 11 -

Page 12: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

ソリューション全体に対してビルドを行う場合は、ソリューションエクスプローラに表示されているソリューション名

の上で左クリックをし、「ビルド」を選択します。

ソリューションに対してビルドすると、そのソリューションに属する全てのプロジェクトに対してビルドが行われます。

一方、特定のプロジェクトに対してビルドの指示を行うこともできます。ソリューションエクスプローラにて、ビルドを

行いたいプロジェクト名の上で右クリックし、「ビルド」を選択します。

- 12 -

Page 13: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

今はソリューションの中に Lesson1 というプロジェクトしか存在しないので、ソリューション全体にビルドを指示して

も、Lesson1 に対してビルドを行っても、どちらの操作でも違いはありません。

実際にビルドを行うと、次のような出力パネルが表示されます。

ビルドの結果は最終行に表示されます。上の例では、

正常終了が1つ

失敗が0個

スキップが0個

と表示されています(数字が先に来るので、ちょっと分かりづらいですが)。

ビルドに失敗してしまう人はソースコードの入力ミスが考えられますので、注意して見なおして下さい。

※セミコロン(;)一つ抜けただけでもエラーになります。

もしかすると、上記のような表示ではなく

ビルド: 0 正常終了、 0 失敗、 1 更新不要、 0 スキップ

と表示されている人もいるかもしれません。ビルドは必要な作業だけを行う処理ですので、一度正常にプログラ

ムが生成された場合は上記のような表示が出力されます。

ちなみに強制的にビルドを行わせる事をリビルドと言います。

- 13 -

Page 14: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

4.3 実行無事にビルドが完了したら、作成したプログラムを実際に実行してみます。

まずはビルドしたプログラムがきちんと生成されているか確認します。まずはソリューション作成時に指定したフォ

ルダ(ディレクトリ)を見てみます。

すると、Debug というフォルダ(ディレクトリ)が出来ているのが確認できると思います。

この Debug フォルダの中を確認すると、

このような内容になっているかと思います。

この Lesson1.exe が先ほど入力したソースコードから生成された実行形式です。

この Lesson1.exe を早速実行してみたく思うのですが、このファイルをダブルクリックして実行させてもウィンドウ

が一瞬開くだけですぐに終了してしまいます。

- 14 -

Page 15: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

今回作成した Lesson1.exe はコンソールプログラムと呼ばれるタイプのプログラムで、通常の Windows プログラ

ムとは少し異なるアプリケーションです。

実行の様子を正しく見るためには次の操作が必要となります:

Windows7 の「スタート」ボタンから、「すべてのプログラム」→「アクセサリ」→「コマンドプロンプト」として、コマンド

プロンプトを起動します。

コマンドプロンプトを起動すると次のようなウィンドウが現れます。

画面に表示されている 「C:¥Users¥あなたの名前」 は、これから入力するコマンドを実行する場所になります。

- 15 -

Page 16: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

コマンドプロンプトの説明は別の解説文書に譲るとして、まずは cd と入力します。 さらにスペースキーを押して

スペースを入力します(つまり「cd<スペース>」と入力して下さい)。

ここで先程確認した、ソリューションフォルダ(ソリューションディレクトリ)から、Debug フォルダ(ディレクトリ)を、こ

のコマンドプロンプトの黒い画面にドラッグ・アンド・ドロップして下さい。すると、先程 「cd <スペース>」と入力し

た部分に続いて、何か文字が入力されます。

この状態で、コマンドプロンプトをアクティブにし(コマンドプロンプトのタイトルバー等をクリックして)、Enter キー

を押下して下さい。

- 16 -

Page 17: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

すると、コマンドプロンプトの画面は次のようになります:

ここで、コマンドプロンプトに対し、 dir と入力し、Enter キーを押下してみて下さい。次のような表示が現れます。

ここに表示されているものは、先程ドラッグ・アンド・ドロップした Debug フォルダ(ディレクトリ)の中身です。よく見

ると Lesson1.exe も表示されているのが確認できます。

- 17 -

Page 18: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

この状態で、さらに Lesson1.exe と入力し、Enter キーを押下すると、次のような表示が得られます:

hello world. というのが、Lesson1.exe からの出力です。これは先程入力したソースコードから生成された実行形

式であり、あなたのコンピュータで作成されたプログラムに他なりません。まずはおめでとうございます。つまり、あ

なたのコンピュータで Visual C++ 2010 Express を用いて、プログラムを生成する環境が整ったという証拠です。

- 18 -

Page 19: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

4.4 デバッグしかし、あなたはもしかすると今こんな風に思っているかもしれません。なんだかとっても面倒くさいな、と。作成し

たプログラムをチェックするたびにこのような操作を行わなければならないのか、と思っているかもしれませんね。

あなたがそのように思うのは全く正常な事で、Visual C++ 2010 Express には動作を確認する機能も存在します。

プログラムの動作を確認する事をデバッグと言います。デバッグ作業を手助けするソフトウェアの事をデバッガと

言いますが、Visual C++ 2010 Express にはデバッガも搭載されています。

ソリューションの構成が Dubug になっていることを確認して下さい(Release になっている場合は Debug に変更し

ておいて下さい)。

この状態を Debug モードと呼ぶことにします。Debug モードであることを確認したら、「デバッグ」→「デバッグ開

始」をクリックして下さい。

- 19 -

Page 20: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

Lesson1.exe をダブルクリックした時のように、一瞬ウィンドウが表示され、また元に戻ってしまったと思います。

これは、Lesson1.exe がコンソールプログラムであるために発生している現象で、一体何が起きているのかと言う

と、

1、コンソールプログラムなので、コマンドプロンプトが起動

2、Lesson1.exe を、1で起動したコマンドプロンプトで実行

3、Lesson1.exe が hello, world. というメッセージを出力し終了

4、Lesson1.exe が終了したので、1で起動したコマンドプロンプトも終了

といった事柄がおきています。これらの事が一瞬で起きているので、一見するとウィンドウが一瞬表示されて終了

する、といった現象として感じてしまうわけです。

これでは Lesson1.exe の動作確認ができませんので、Lesson1.exe を終了直前に一時停止してみます。その為

に、Lesson1.cpp の5行目にある return 0; のところをクリックし、F9 キーを押下します。

すると左側に赤い丸が表示されますが、これは、この赤い丸の部分で一時停止すると言うことを表しています。こ

の場所の事をブレークポイントと呼びます。

- 20 -

Page 21: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

この状態で、もう一度、 「デバッグ」→「デバッグ開始」(もしくは F5 キーを押下)して下さい。

今度は、このような画面になり、黄色の矢印がブレークポイントの所を指しているのが分かります。

さらに、Windows のタスクバーをよく見てみると、アプリがひとつ立ち上がっているのが分かります。

Visual C++ 2010 Express の後ろに表示されているので、ALT+TAB キーを押下する等して前面に表示させます。

すると、このようなウィンドウが表示されていることが分かります:

- 21 -

Page 22: Visual C++ 2010 Epxress の使い方 for 「プログラミ …iigura/IntroductionToProgramming/...Visual C++ 2010 Epxress の使い方 for 「プログラミング入門」ver.20110912静岡理工科大学総合情報学部コンピュータシステム学科

このウィンドウこそが、Lesson1.exe の実行中の画面であり、ブレークポイントを設定せずに実行したときに一瞬で

消えてしまったウィンドウです。

ここでは Lesson1.exe の終了直前部分にブレークポイントを設定して、いわば終了直前に一時停止している状

態なので、このように出力画面を確認することができました。

今は一時停止状態ですので、再度 Visual C++ 2010 Express に戻って、ソースコード表示部分を適当にクリック

した後、再度 F5 キーを押下して実行を再開します。実行を再開すると Lesson1.exe は終了しますので、Visual C++ 2010 Express もソースコード入力時の状態に戻ります。

5.まとめ

 以上、本当に駆け足ですが、Visual C++ 2010 Express でのプログラム開発について見てきました。実際の学

習では、プログラムの動作を1ステップずつ実行するステップ実行の機能や、プログラム内部で情報がどのように

変化しているのかを確認するウォッチ等の機能を使って学習していきます。

Visual C++ 2010 Express の基本的な使い方が分からないと学習にも支障がきたしますので、何度も繰り返して

Visual C++ 2010 Express の使い方に慣れておいて下さい。

- 22 -