Поделиться через


Поддержка использования 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