利用者:Mzm5zbC3/Windows APIプログラミング/第一章 Hello world

情報技術 > Windows APIプログラミング > 第一章 Hello world


Windows APIでのHello worldのサンプルは以下です。

サンプルコード 編集

/* Windows API のヘッダ */
#include <windows.h>

/* WinMain(Windows のエントリーポイント) */
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
 LPSTR lpCmdLine, int nCmdShow) {
 MessageBox(NULL, "Hello, world!", "Hello, world!", MB_OK);
 return 0;
}

最初にwindows.hヘッダをインクルードしておくとWindows APIで利用するのに必要なヘッダを自動的にインクルードしてくれます。

WinMain 編集

WinMain はWindowsのGUIプログラミングでの main 関数に相当するエントリーポイントです。WinMain の定義は以下のようになっています。

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
 LPSTR lpCmdLine, int nCmdShow);
定義ヘッダ
WinBase.h
hInstance
アプリケーションの現在のインスタンスハンドルです。
hPrevInstance
アプリケーションの前のインスタンスのハンドルです。Win32アプリケーションでは常に NULL です。
lpCmdLine
アプリケーションのコマンドライン引数が格納された NULL で終わる文字列へのポインタです。
nCmdShow
ウィンドウの表示状態を表します。

WINAPI呼出規約がWindows APIの関数であることを表しています。基本的にWindows APIの関数はこれがついています。正確には windef.h で以下のように定義されています。

#define WINAPI      __stdcall

MessageBox 編集

MessageBox はメッセージボックスを表示します。定義は以下のようになっています。

int MessageBox(
  HWND hWnd,
  LPCTSTR lpText,
  LPCTSTR lpCaption,
  UINT uType
);
定義ヘッダ
Winuser.h
ライブラリ
User32.lib
DLL
User32.dll
hWnd
オーナーウィンドウのウィンドウハンドルを指定します。NULL を指定するとオーナーウィンドウを持たないメッセージボックスが表示されます。
lpText
表示するメッセージです。NULL で終わる文字列へのポイントを指定します。
lpCaption
メッセージボックスのタイトルです。NULL で終わる文字列へのポイントを指定します。NULL を指定すると既定のタイトル( 「エラー」)が表示されます。
uType
メッセージボックスの内容と動作を指定します。指定できるフラグは付録/uType (MessageBox)をご覧ください。