MSVC CLIApplication - eiichiromomma/CVMLAB GitHub Wiki
(MSVC) コンソールアプリ
GUIを持たないアプリの作り方
Command Line Interfaceの略。C言語の教本に載っているソースは大抵CLIであるが、VisualC++ 2005 Express Edition(以後VC)を使って勉強する場合には少々注意が必要になる。
VCは基本的にプロジェクト単位でビルド等を行なう。 入門レベルでは不要な話だが、大規模プログラミングには必要な概念なので使うクセを付けておくと良い。
新しいソースを入力するには"ファイル"->"新規作成"->"プロジェクト"を選び、プロジェクトの種類はWin32の"Win32コンソールアプリケーション"を選ぶ。 プロジェクト名には適当な名前を入力するとMy Document\Visual Studio 2005\Projects下にプロジェクト名のフォルダが作成される。 (Helloとでもしておく)
ちなみにソリューションのフォルダは今のプログラムの規模ではディスク容量のムダなのでチェックを外しておく。
このまま完了でも良いのだがmainではなくtmainとなっていたり、勝手にヘッダファイルを作成されてしまう。 教本通りのソースを打たないと気分が悪いので、空のプロジェクトをチェックして完了する。
すると何も無いプロジェクトが出来るので、ソリューションエクスプローラウィンドウのソースファイルフォルダを右クリックして"追加"->"新しい項目"とする。 "コード"のC++ファイルを選択し、ファイル名に適当な名前を入れる。(ここではhello)
"追加"を押すと、プロジェクトの一部としてhello.cppが追加される。あとはソースを記入するだけである。
#include <stdio.h>
int main()
{
printf("Hello\n");
return 0;
}
としてみよう。ビルドが成功したら実行する。
↓のように書いたが「デバッグなしで開始」を行なうとちゃんと「続行するには…」が表示されるようだ。 デバッグの場合は止まる必要は無いとの判断だろう。
ところが何も起きずに終了してしまう。 実は従来のVisual C++のようにプログラム終了時に待ってくれないので、瞬時に終了してしまっているらしい。
恐らくVCの機能で変更できるのだろうが、調べるのも面倒なのでMS-C時代からお馴染の関数getch()を利用する。 これは何かキー入力されるのを待つ関数で昔から"Press Any Key..."なんて時に使われている。 conio.hというヘッダファイルが必要となるので以下のようにする。
#include <stdio.h>
#include <conio.h>
int main()
{
printf("Hello\n");
getch();
return 0;
}
これで結果を表示した後で一時停止してくれる。