使用 wmain

Microsoft 特定的

在 Unicode 程式設計模型中,您可以定義函式的 main 寬字元版本。 wmain如果您想要撰寫符合 Unicode 程式設計模型的可攜式程式碼,請使用 而不是 main

如同 main ,數個限制適用于 wmain 不適用於任何其他 C 函式的函式。 wmain 函式:

  • 無法宣告為 inline
  • 無法宣告為 static
  • 無法取得其位址。
  • 無法從程式呼叫。

函式 wmain 簽章

wmain 式沒有宣告,因為它內建在語言中。 如果這麼做,的 wmain 宣告語法看起來會像這樣:

int wmain( void );
int wmain( int argc, wchar_t *argv[ ] );
int wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] );

wmain 式是使用下列其中一個簽章隱含宣告。 當您定義函 wmain 式時,您可以使用其中任何一個簽章。 然後您可以傳遞寬字元引數以及 (選擇性的) 一個指向程式的寬字元環境指標。 當未傳回任何值時,Microsoft 編譯器也允許 wmain 具有 的傳回型 void 別。 的 argvenvp 參數 wmain 也可以定義為 型別 wchar_t** 。 如需引數的詳細資訊,請參閱 引數描述

envp 環境

如果您的程式使用函 main 式,則會在程式啟動時由執行時間程式庫建立多位元組字元環境。 環境的寬字元複本只有在需要時才建立 (例如,藉著呼叫 _wgetenv_wputenv 函式)。 在第一次呼叫 _wputenv 時,或在第一次呼叫 _wgetenv 時,如果 MBCS 環境已經存在,則會建立對應的寬字元字串環境,然後再由 _wenviron 全域變數 (是 _environ 全域變數的寬字元版本) 指向該變數。 此時會同時存在兩個環境 (MBCS 和 Unicode) 的複本,並由作業系統在整個程式存留期裡進行維護。

同樣地,如果您的程式使用函 wmain 式,則會在程式啟動時建立寬字元環境,並由全域變數指向 _wenviron 。 MBCS (ASCII) 環境是在第一次呼叫 _putenvgetenv 時建立的,並且由 _environ 全域變數指向。

如需 MBCS 環境的詳細資訊,請參閱 國際化

END Microsoft Specific

另請參閱

main 函式和程式執行