Поддержка использования wmain
Обновлен: Ноябрь 2007
Visual C++ поддерживает определение функции wmain и передачу "широких" символов в качестве аргументов в приложение, представленное в формате Юникода. Формальные параметры для функции wmain определяются в формате, аналогичном функции main. Затем можно передать в качестве аргументов "широкие" символы и указатель среды кодировки Юникод (необязательно) в программу. Параметры argv и envp функции wmain относятся к типу wchar_t*. Пример:
wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] )
Примечание. |
---|
В приложениях MFC с кодировкой Юникод в качестве точки входа используется wWinMain. В этом случае CWinApp::m_lpCmdLine является строкой Юникода. Убедитесь, что параметр компилятора /ENTRY установлен в значение wWinMainCRTStartup. |
Если программа использует функцию main, среда многобайтовой кодировки создается библиотекой времени выполнения при запуске программы. Копия среды для Юникода создается только при необходимости (например, для вызова функции _wgetenv или _wputenv). При первом вызове функции _wputenv или _wgetenv, если среда многобайтовой кодировки уже существует, создается среда для поддержки строк Юникода. На эту среду впоследствии указывает глобальная переменная _wenviron, которая является версией глобальной переменной _environ в формате Юникода. В этот момент две копии среды (для многобайтовой кодировки и Юникода) существуют одновременно и поддерживаются системой времени выполнения в течение всего срока жизни программы.
Аналогичным образом, если программа использует функцию wmain, при запуске программы создается среда Юникода и на нее указывает глобальная переменная _wenviron. Среда многобайтовой кодировки (ASCII) создается при первом вызове функции _putenv или getenv, и на нее указывает глобальная переменная _environ.
См. также
Основные понятия
Общие сведения о программировании Юникода