wmain
사용
Microsoft 전용
유니코드 프로그래밍 모델에서 main
함수의 와이드 문자 버전을 정의할 수 있습니다. 유니코드 프로그래밍 모델을 준수하는 이식 가능한 코드를 작성하려는 경우 main
대신 wmain
을 사용합니다.
main
과 마찬가지로 wmain
함수에는 다른 C 함수에는 적용되지 않는 몇 가지 제한이 적용됩니다. wmain
함수:
inline
으로 선언할 수 없습니다.static
으로 선언할 수 없습니다.- 주소를 사용할 수 없습니다.
- 프로그램에서 호출할 수 없습니다.
wmain
함수 시그니처
wmain
함수는 언어에 기본 제공되므로 선언이 없습니다. 이 경우 wmain
에 대한 선언 구문은 다음과 같습니다.
int wmain( void );
int wmain( int argc, wchar_t *argv[ ] );
int wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] );
wmain
함수는 이러한 서명 중 하나를 사용하여 암시적으로 선언됩니다. wmain
함수를 정의할 때 이러한 서명을 사용할 수 있습니다. 와이드 문자 인수 또는 와이드 문자 환경 포인터를 프로그램에 전달할 수 있습니다. 또한 Microsoft 컴파일러는 값이 반환되지 않을 때 wmain
이 void
의 반환 형식을 가질 수 있도록 해줍니다. wmain
에 대한 argv
및 envp
매개 변수를 형식 wchar_t**
로 정의할 수도 있습니다. 인수 설명에 대한 자세한 내용은 인수 설명을 참조하세요.
envp
환경
프로그램이 main
함수를 사용하면 프로그램을 시작할 때 런타임 라이브러리에 의해 멀티바이트 문자 환경이 만들어집니다. 이 환경의 와이드 문자 복사본은 필요한 경우(예: _wgetenv
또는 _wputenv
함수를 호출하는 경우)에만 만들어집니다. _wputenv
또는 _wgetenv
의 첫 번째 호출에서 MBCS 환경이 이미 있는 경우 해당 와이드 문자 문자열 환경이 만들어지고 _wenviron
전역 변수의 와이드 문자 버전인 _environ
전역 변수에 의해 가리킵니다. 이 시점에서 환경 복사본 두 개(MBCS와 유니코드)가 동시에 존재하며 프로그램의 수명 내내 운영 체제에 의해 유지 관리됩니다.
마찬가지로 프로그램이 wmain
함수를 사용하면 프로그램이 시작될 때 와이드 문자 환경이 만들어지고 _wenviron
전역 변수가 해당 환경을 가리킵니다. MBCS(ASCII) 환경은 _putenv
또는 getenv
를 처음 호출할 때 만들어지며, _environ
전역 변수가 이 환경을 가리킵니다.
MBCS 환경에 대한 자세한 내용은 국제화를 참조하세요.
Microsoft 전용 종료