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 컴파일러는 값이 반환되지 않을 때 wmainvoid의 반환 형식을 가질 수 있도록 해줍니다. wmain에 대한 argvenvp 매개 변수를 형식 wchar_t**로 정의할 수도 있습니다. 인수 설명에 대한 자세한 내용은 인수 설명을 참조하세요.

envp 환경

프로그램이 main 함수를 사용하면 프로그램을 시작할 때 런타임 라이브러리에 의해 멀티바이트 문자 환경이 만들어집니다. 이 환경의 와이드 문자 복사본은 필요한 경우(예: _wgetenv 또는 _wputenv 함수를 호출하는 경우)에만 만들어집니다. _wputenv 또는 _wgetenv의 첫 번째 호출에서 MBCS 환경이 이미 있는 경우 해당 와이드 문자 문자열 환경이 만들어지고 _wenviron 전역 변수의 와이드 문자 버전인 _environ 전역 변수에 의해 가리킵니다. 이 시점에서 환경 복사본 두 개(MBCS와 유니코드)가 동시에 존재하며 프로그램의 수명 내내 운영 체제에 의해 유지 관리됩니다.

마찬가지로 프로그램이 wmain 함수를 사용하면 프로그램이 시작될 때 와이드 문자 환경이 만들어지고 _wenviron 전역 변수가 해당 환경을 가리킵니다. MBCS(ASCII) 환경은 _putenv 또는 getenv를 처음 호출할 때 만들어지며, _environ 전역 변수가 이 환경을 가리킵니다.

MBCS 환경에 대한 자세한 내용은 국제화를 참조하세요.

Microsoft 전용 종료

참조

main 함수 및 프로그램 실행