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


Использование wmain вместо main

Блок, относящийся только к системам Microsoft

В модели программирования Юникода можно определить широкосимвольную версию функции main. Используйте wmain вместо main, если требуется создать переносимый код, который соответствует спецификации Юникода.

Формальные параметры для функции wmain определяются в том же формате, что и для функции main. Затем можно передать в качестве аргументов "широкие" символы и указатель среды кодировки Юникод (необязательно) в программу. Параметры argv и envp функции wmain относятся к типу wchar_t*.

Если программа использует функцию main, среда многобайтовой кодировки создается операционной системой при запуске программы. Широкосимвольная копия среды создается только при необходимости (например, вызовом функций _wgetenv или _wputenv). При первом вызове _wputenv или _wgetenv, если среда многобайтовой кодировки (MBCS) уже существует, создается соответствующая среда широкосимвольной строки, на которую затем указывает глобальная переменная _wenviron, представляющая собой широкосимвольную версию глобальной переменной _environ. В этот момент две копии среды (для многобайтовой кодировки и Юникода) существуют одновременно и поддерживаются операционной системой в течение всего срока жизни программы.

Аналогично, если программа использует функцию wmain, среда MBCS (ASCII) создается при первом вызове функции _putenv или getenv, и на нее указывает глобальная переменная _environ.

Дополнительные сведения о среде MBCS см. в разделе Однобайтовые и многобайтовые кодировки в справочном разделе Библиотека времени выполнения.

См. также

Ссылки

Функция main. Запуск программы