Win32でメッセージボックスというものを表示させてみましょう。
サクラエディタで次のような内容のテキストファイル「hello3.c」を作成します。
#include <stdio.h>
#include <windows.h>
int main(void)
{
MessageBox(NULL, TEXT("Hello, world"), TEXT("INFO"), MB_ICONINFORMATION);
return 0;
}
さらに「gcc -o hello3 hello3.c」を実行して下さい。「hello3.exe」というEXEファイルができれば成功です。 そして、「./hello3.exe」を実行すれば、メッセージボックスで「Hello, world」と表示されます。
hello2との違いは、<windows.h>をインクルードしたことと、printfの代わりにMessageBoxを呼んだことです。 <windows.h>は、Windows APIを使うのに必要不可欠なヘッダです。MessageBoxは、 メッセージボックスを表示するためのAPIです。 メッセージボックスは、ユーザーからボタンが押されるのを待ちます。 ボタンが押されると、メッセージボックスが閉じられ、呼び出し元に戻ります。
MessageBoxを呼ぶだけでも立派なWin32アプリです。これであなたもWin32の入り口に立ったのです。 C言語のif文とMessageBoxを組み合わせるだけでも、アドベンチャーゲームが作れます。
Win32で分からない関数や構造体があった場合は、マイクロソフトのMSDNを見るのが常識です。 MSDNのMessageBoxを見て下さい。 MessageBoxの呼び出し方が書かれています。
第二引数はメッセージで、第三引数がタイトルになる。第一引数と第三引数はNULLでも構わないと書かれています。 ボタンを指定しない場合は、規定のMB_OKが選ばれます。MB_OKはゼロです。 MB_ICONINFORMATIONは、情報に関するメッセージボックスであることを指定しています。 戻り値は、ボタンの指定によって変わります。MB_OKが指定されたときは、IDOKが戻り値になります。 MB_OKCANCELの場合は、IDOK、またはIDCANCELが戻り値になります。 戻り値をチェックすることで、メッセージボックスで押されたボタンを知ることができます。
TEXTマクロについては後述します。
Visual Studioの場合は、"stdafx.h"の中で<windows.h>をインクルードして下さい。