wmain の使用

更新 : 2007 年 11 月

Visual C++ では、wmain 関数を定義して、Unicode アプリケーションにワイド文字引数を渡すことができます。wmain に渡す仮引数は、main に渡す際の形式に準拠して宣言します。さらに、ワイド文字の引数と、必要であればワイド文字環境ポインタもプログラムに渡すことができます。wmain の引数 argv と envp の型は wchar_t* です。次に例を示します。

wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] )
fzc2cy7w.alert_note(ja-jp,VS.90).gifメモ :

MFC の Unicode アプリケーションでは、エントリ ポイントとして wWinMain を使用します。この場合、CWinApp::m_lpCmdLine は、Unicode 文字列になります。/ENTRY リンカ オプションを使用して wWinMainCRTStartup を設定してください。

プログラムが main 関数を使用している場合、マルチバイト文字環境は、プログラムの起動時にランタイム ライブラリが作成します。マルチバイト文字環境で使われるワイド文字のコピーは、必要に応じて作成されます (たとえば、_wgetenv 関数や _wputenv 関数が呼び出されたとき)。MBCS 環境が既に存在している場合は、_wputenv または _wgetenv を初めて呼び出したときに、対応するワイド文字列環境が作成されます。次に、_environ グローバル変数のワイド文字版である _wenviron グローバル変数が、その環境へのポインタとなります。この時点までで、2 つの環境のコピー (MBCS および Unicode) が同時に存在していることになるわけですが、両方ともプログラムが消滅するまでランタイム システムによって保持されます。

プログラムが wmain 関数を使っている場合は、ワイド文字環境がプログラムの起動時に作成され、また _wenviron グローバル変数によって環境のアドレスが示されます。MBCS (ASCII) 環境は、_putenv または getenv を初めて呼び出したときに作成され、_environ グローバル変数によってアドレスが示されます。

参照

概念

Unicode のサポート

Unicode プログラミングの要約

参照

WinMain 関数