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