Win32 App WinMain The Application Entry Point - yoshimune/LearningDirectX11 GitHub Wiki

This page refers to 【WinMain: The Application Entry Point

Entry Point

全てのウィンドウズプログラムはエントリーポイント関数を含みます。エントリーポイント関数はWinMainwWinMainと名付けられています。今回は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;
}

Next:Win32 App Module 1. Your First Windows Program

⚠️ **GitHub.com Fallback** ⚠️