Win32 App WinMain The Application Entry Point - yoshimune/LearningDirectX11 GitHub Wiki
This page refers to 【WinMain: The Application Entry Point】
全てのウィンドウズプログラムはエントリーポイント関数を含みます。エントリーポイント関数はWinMainかwWinMainと名付けられています。今回はwWinMainという名前を使います。
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow)
引数に使われている4つのパラメーターの説明です。
-
hInstanceは「インスタンス制御」または「モジュール制御」と呼ばれるものです。OSは、メモリーにロードされた際、この値を使って実行可能ファイル(.exe)を識別します。インスタンス制御はいくつかのWindows関数(例えば、アイコンやビットマップのロード)で必要となります。 -
hPrevInstanceは特に意味がありません。16bitのWindowsで使用されていました。現在は常に0が入ります。 -
pCmdLineはUnicodeで書かれたコマンドライン引数を含みます。 -
pCmdShowはメインのウィンドウが最小化されている・最大化されている・通常サイズで表示されている、を判定するフラグです。
この関数はint型を返します。戻り値はOSでは使用されません。しかし、戻り値をステータスコードとして別のプログラムにわたすような使い方ができます。
WINAPIは呼び出し規約です。呼び出し規約は関数が呼び出し元からパラメーターを受け取る方法を定義します。例えば、スタックにパラメーターが表示される順序を定義します。
WinMain関数はコマンドライン引数がANSIになっている以外wWinMainと同一です。Unicodeバージョンが好ましいです。
プロジェクトにMain.cppを追加し、以下を記述します。
#include <Windows.h>
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow)
{
return 0;
}