#include <windows.h>
#include <tchar.h>
int WINAPI WinMain(
HINSTANCE hInstance ,
HINSTANCE hPrevInstance ,
LPSTR lpCmdLine ,
int nCmdShow ) {
// 実行するコードを記述
// メッセージボックスを表示するコード
MessageBox(NULL, _T("Test - メッセージボックスを表示ました。"), _T("WinApp Message Test Box"), MB_OK);
return 0;
}
ヘッダファイル
ヘッダファイル「windows.h」は、
「Win32 API」を利用するためのヘッダファイルで、
「windows.h」の中に、
様々な「関数」「プロトタイプ宣言」「定数」などが定義されている。
ヘッダファイル「tchar.h」には、
「Win32API」で使用する「文字列」のための「ヘッダファイル」。
「WindowsOS」で使用されている「マルチバイト文字」
・char型
・wchar_t型(現在の推奨)
「tchar.h」をインクルードすると、
「TCHAR」という型が使用できるようになり、
コンパイル時に、
「char」型か「wchar_t」型に置き換えられる。
「""」で囲むと「char」型
「L""」で囲むと「wchar_t」型
「_T("")」で囲むと「TCHAR」型
というように型を指定できる。
「TCHAR」型が置き換えられる方は、
プロジェクトの「プロパティ設定」によって決まる。
デフォルトは、「ワイド文字(wchar_t型)」
「WINAPI」は、
「返り値」の型を指定するワードで、
「関数の呼び出し規約」の一種。
C言語キーワード「stdcall」を「#define」プロセッサで再定義したもの。
「呼び出し規約」は、
関数を呼び出す処理をどのマシン語に翻訳するかを指定する。
「Windows」の呼び出し規約は、「WINAPI」なので、
「Windows」アプリケーションの場合は、「WINAPI」の指定と覚えておく。
「WinMain」関数の引数
HINSTANCE hInstance |
現在のインスタンスハンドル
「インスタンスハンドル」と呼ばれる型。
このプログラムを識別する番号。
「ハンドル」とは、何かを識別するために使う数値のことを指す。
「インスタンスハンドル」は、
ここのプログラムを識別するためのハンドル。
一部の「Win32 API」関数を呼び出すために、引数として指定することがある。
|
HINSTANCE hPrevInstance |
互換性のために残されている引数。
第二引数の値は、常に「NULL」 。
「Win16」の産物で、現在は利用されていない。
「WindowsOS」では、同じアプリケーションを複数起動可能。
「Win16」では、
同一のアプリケーションの「インスタンス」はメモリを共有していたため、
自分自身の別インスタンスの確認に「第二引数」が使われていた。
|
LPSTR lpCmdLine |
コマンドライン文字列
「コマンドライン」から受け取った値が保存される引数で、
「LPSTR」という型は、Windows標準の「文字型」。
「コマンドプロンプト」から起動するプログラムは、
「プログラム名 オプション文字列」と指定して起動する。
「LPSTR lpCmdLine」には、「オプション文字列」が格納される。
|
int nCmdShow |
ウィンドウの表示状態を指定する値を保存している引数。
アプリケーションの初期表示方法を指定することが可能。
ショートカットのプロパティにある実行時の「大きさ」の値が渡される。
|
Back