支持使用 wmain
Visual C++ 支持定义“wmain”函数并将宽字符参数传递到 Unicode 应用程序。 使用类似于 main
的格式,将形式参数声明为“wmain”。 然后可以将宽字符自变量和宽字符环境指针(可选)传递给该程序。 wmain 的 argv
和 envp
参数为 wchar_t*
类型。 例如:
wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] )
注意
MFC Unicode 应用程序使用 wWinMain
作为入口点。 在此情况下,CWinApp::m_lpCmdLine
是 Unicode 字符串。 请务必使用 /ENTRY 链接器选项设置 wWinMainCRTStartup
。
如果程序使用 main 函数,则多字节字符环境由运行时库在程序启动时创建。 环境的宽字符副本仅在需要时创建(如调用 _wgetenv
或 _wputenv
函数时)。 在第一次调用 _wputenv
时,或者在第一次调用 _wgetenv
时,如果 MBCS 环境已存在,则创建相应的宽字符串环境。 然后,_wenviron
全局变量指向环境,它是 _environ
全局变量的宽字符版本。 此时,环境的两个副本(MBCS 和 Unicode)同时存在,并由运行时系统在程序的整个生命周期中维护。
同样,如果程序使用 wmain 函数,则在程序启动时创建宽字符环境并用 _wenviron
全局变量指向该环境。 MBCS (ASCII) 环境是在首次调用 _putenv
或 getenv
时创建的,并由 _environ
全局变量指向。