共用方式為


使用 wmain

Microsoft 特定的

在 Unicode 程式設計模型中,您可以定義函式的 main 寬字元版本。 如果您要撰寫符合 Unicode 程式設計模型的可攜式程式代碼,請使用 wmain 而非 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 傳回型別。 和 argv envp 參數 wmain 也可以定義為 型別 wchar_t**。 如需自變數的詳細資訊,請參閱 自變數描述

環境envp

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

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

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

END Microsoft 特定的

另請參閱

main 函式和程序執行