第1章03 初めてのプログラム、文字の表示@イチからゲーム作りで覚えるC言語

イチからゲーム作りで覚えるC言語
連載ページ一覧へ
1章04 printf関数で迷路モドキの表示
NEXT : 1章04 printf関数で迷路モドキの表示
1章02 アプリ作成のためのプロジェクト作り : PREV

この記事でやること

前回はMicrosoft社の “Visual Studio” で今後プログラムを作るためのプロジェクトとソリューションを作りました。
今回はVisual Studio を使って、はじめてのC言語のプログラム(アプリ)を作って動かしてみるまでにどうやったら良いか、設定方法やひっかかるポイントも書いています。

この記事はC言語でゆる~くC言語でゲームを作りながらプログラミングを学ぶための連載記事です。シリーズものですので記事の一覧はこちらを参照してくださいね。

プロジェクトにC言語のソースコードを追加

プログラムを作って動かすには、ソースコードを書く必要があります。
空っぽのプロジェクトの中にソースコードを作成してみましょう。前回作った「SampleSolution」というソリューションの中に、「0010_moji_hyouji」というプロジェクトを作成しましたので、その中にC言語のソースコードを作ってみます。

プロジェクトが追加が完了した画面

プロジェクトが追加が完了した画面

「ソースファイル」を右クリックし、メニューを開きます。

VisualStudioでソースコードの追加手順(新規追加)

VisualStudioでソースコードの追加手順(新規追加)

ソースファイルで右クリック →追加(D)新しい項目(W)を選択し、新しくファイルを追加するためのウィンドウを開きます。次のような画面が出るかと思います。

新規にCソースファイルを追加する

新規にCソースファイルを追加する

左の一覧で、[Visual C++]がデフォルトで選択されているかと思います。ここはそのままで大丈夫です。(もし違ったものが選択されていたら、Visual C++ を選択しましょう。) 真ん中に追加するファイルの種類がアイコン付きで一覧となっているので、「C++ ファイル(.cpp)」を選択します。
ここで注意ですが、これでは、C言語ではなく、C++言語のファイルが追加されてしまいます。
今回はC言語のファイルを追加したいため、追加する名前の末尾の拡張子を一部書き換えてあげます。今回は 「Source.cpp」というファイル名を「Source.c」というように、拡張子をかえています。

C++言語のソースコードのファイル拡張子は「.cpp」が一般的です。また、C言語のファイル拡張子は「.c」が一般的です。どちらも中身はテキストファイルですが、一部のソフト(統合開発環境など)はこのファイル拡張子を見て、扱いを変えることもありますので、ファイルの中身に合わせて拡張子も名前づけしてあげたほうが無駄なトラブルにならずに済みます。

名前を書き換えた後、追加ボタンを押すと、プロジェクトにC言語のソースコードが追加されました!

C言語のソースコードを追加した直後の画面

C言語のソースコードを追加した直後の画面

ソリューションエクスプローラーに、 のアイコン付きで表示されていれば問題ありません。また、追加したファイルの中身がウィンドウ左に表示されています。空っぽのファイルを追加したので、中身が何も書いていない状態ですね。ここにプログラムを書き込んでいきましょう。

はじめてのプログラムで文字を表示

プログラムの中身を一行ずつみていくのは次の記事にするとして、まずはプログラムをコピペで書いてみて、動かしてみましょう!

#include <stdio.h>
void main ()
{
 printf("hello, world\n");
}

これは真っ黒な画面(コンソール画面)に「hello, world」と白い文字で表示するだけのものすごくシンプルなプログラムのソースコード(コード)です。すみませんが、最初の最初なのでここにゲーム要素はゼロ。
このソースコードをそのままコピー&ペースト、もしくはキーボードから同じように Visual Studio のエディタに入力します。入力したら、Source.c の画面は下のようになっているハズ。

C言語で hello, worldを表示するプログラムを入力した画面

C言語で hello, world を表示するソースコード

ソースコードが書けたので、動かしてみましょう。ソースコードを動かすとき、コンパイルやリンク処理などが必要です。このコンパイルやリンク処理をすることで、「〇〇.exe」という「exe」ファイル拡張子の、ダブルクリックで実行できるプログラムとなります。

exe拡張子は英語「Executable file」の略です。実行可能ファイルなんて呼ばれてて、これをクリックしたり、コマンドで実行するとプログラムが動くよ、っていうファイルです。テキストファイルではないので、notepadで開いても通常人間が読むことはできません。

C言語のソースコードをビルドする

コンパイルやリンク処理など、ソースコードをマシンが実行できるプログラム(exeファイル)に変換する処理を統合開発環境上では「ビルド」処理としてまとめることができます。
特になにもこちらで指定しなくても、ソースコードをコンパイルし、リンクするといった、プログラム作成の処理をウラでちゃちゃっとやってくれます。(だからこそ、なにやってくれているのか最初わかりずらいというのはありますけど・・。)

ビルドの流れ

ビルドの流れ

実際にビルドしてみましょう。Visual Studio のメニューバーから、ビルドを選択すると、0010_moji_hyouji のビルドという選択肢が出ているかと思います。(もし違う名前でプロジェクトを作っていたら、(そのプロジェクト名 )〇〇のビルドという選択肢となっているかと思います。)
では、0010_moji_hyouji のビルドを選択し、ビルドを行います。

・・・なにも起こらない?

選択したのは良いのですが、画面になにも変化がなかったのではないでしょうか。ビルドが完了しました!とか失敗しました!とかの結果がどうだったのか確認したいですね。
そういったシステムメッセージは「出力ウィンドウ」に出ています。

出力ウィンドウの表示

出力ウィンドウの表示

出力のタブをクリックして、出力ウィンドウを表示します。出力タブの場所がわからない場合は、ウィンドウのツールバーの表示(V)出力(O)を選択することでも表示できます。
さて、出力ウィンドウを表示して、無事にビルドができたかメッセージを確認しましょう。

ビルド後の出力ウィンドウの中身

ビルド後の出力ウィンドウの中身

以下のようなメッセージが出てますね。

1>------ ビルド開始: プロジェクト: 0010_moji_hyouji, 構成: Debug Win32 ------
1>Source.c
1>0010_moji_hyouji.vcxproj -> C:\*省略*\SampleSolution\Debug\0010_moji_hyouji.exe
========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========

4行目に「ビルド: 1 正常終了、 0 失敗」と表示されており、これは1件のソースコード(Source.c)が正常に処理されたことを表しています。また、「0 失敗」とあり、うまく処理できなかったファイルが 0 件だったことがわかります。

つまりビルドはうまくいったようです。

ここで、もう一度ビルドをしてみると、「ビルド: 0 正常終了、0 失敗、1 更新不要、0 スキップ」とだけ出力ウィンドウにメッセージが出ると思います。
なにもソースコードを書き換えたりしていないので、ビルド処理しなくてもいいじゃん!って判断されたため、「1 更新不要」となるのです。
もし、 1 失敗 となっている場合は、ソースコードを打ち間違えていないか、もう一度確認して打ち直してみてください。

プログラムを実行する

ビルドをしたとき、失敗がカウントされていなければ、ちゃんとプログラムが実行できる状態となっています。実行はデバッグ(D)デバッグなしで開始(H)でプログラムを動かしてみましょう。

結果・・いかがでしたでしょうか。

理想では、黒い画面に「hello, world」と表示される…ですが、ほとんどの片は一瞬だけウィンドウらしきものが表示され、中身をみる間もなく消えたのではないでしょうか。
マシンのスペックによりますが、ウィンドウが表示されたことさえわからず、なにも画面に変化がなかった・・・ように見えるかもしれません。

VisualStudio で新しく空のプロジェクトを作ったときのデフォルト設定として、「プログラムを実行し終えたらコンソールを消す」という設定になっている時、このようなことが起こります
先ほど書いたプログラムは「hello, world」というメッセージを表示するだけで、なにか入力を受け付けたりする処理を書いていないので、メッセージを表示したら、プログラムは終了しちゃうのです。

プログラム終了時に「なにかキー入力してもらったら終了する」という設定をすることで、解決できます。

コンソールのウィンドウを表示する(終了時に入力を待つ)

ソリューションエクスプローラにある、「0010_moji_hyouji」のプロジェクトを右クリックします。
でてくるメニューからプロパティを選択して、プロジェクトの設定一覧を表示します。
ここでは、ビルドするときの設定を細かく指定できます。

プロジェクトのプロパティウィンドウ

プロジェクトのプロパティウィンドウ

構成プロパティリンカーシステムサブシステムの右にある、プルダウンボタンをクリックします。

コンソール(/SUBSYSTEM:CONSOLE)を選択します。これで、ビルドするとき、明示的にコンソールプログラムであることを指定することとなり、プログラムの実行が終わったときに、そのままウィンドウを閉じるのではなく、キー入力を求めるようになります。

選択したら、OKボタンを押して、設定を終了します。

プログラムを実行する(再)

もう一度、プログラムを実行してみましょう。デバッグ(D)デバッグなしで開始(H)、もしくは、[Ctrl + F5] でも起動できます。このショートカットは頻繁に使うので覚えておくと効率アップするかと思います!
無事に黒い画面にプログラムの実行結果が表示されましたか?いぇーい!!

C言語でHello, Worldプログラムを動作

C言語でHello, World表示プログラム実行

こんな感じのウィンドウが出ていれば成功です。
プログラムを終了するには、ウィンドウを選択した状態で何かキーを押せば、ウィンドウが閉じて終了されます。ウィンドウ右上の[X]アイコンで閉じての大丈夫です。

ビルドとプログラム実行を同時に

先ほどはビルド(ビルド(そのプロジェクト名 )〇〇のビルド)をまず行い、それからプログラムを実行(デバッグ(D)デバッグなしで開始(H)、もしくは、[Ctrl + F5] )したと思います。
でも今後ソースコードを書き換えたりしたときは、いきなりプログラムを実行で問題ありません。必要なソースコードを書き換えた場合は、ちゃんとプログラム実行するまえにビルドしますか?って聞いてくれます。

ソースコードが変わっていてプログラムの実行を選択

ソースコードが変わっていてプログラムの実行を選択

ここではいを選択すると、書き換えた最新のソースコードでビルドしてから、プログラムを実行してくれます。いいえを選択すると、前回ビルドしてできた前回のプログラムが実行されますので、気を付けてくださいね。

次回からはプログラムをちょこちょこ変えながら、今回コピー&ペーストしたソースコードの中身を一行一行、解説をしていこうと思います。

あとがき

今日はここまで。お疲れさまでした。

イチからゲーム作りで覚えるC言語
連載ページ一覧へ
1章04 printf関数で迷路モドキの表示
NEXT : 1章04 printf関数で迷路モドキの表示
1章02 アプリ作成のためのプロジェクト作り : PREV

ページの更新履歴

更新日 更新内容
更新なし