利用者: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)をご覧ください。