본문 바로가기
게임 공부/Windows API

4. WinMain: The application entry point

by woohyeon 2020. 3. 31.
반응형

다음 링크를 참고하여 학습용으로 작성합니다.

https://docs.microsoft.com/ko-kr/windows/win32/learnwin32/winmain--the-application-entry-point

 

모든 윈도우즈 프로그램은 WinMain 또는 wWinMain 이란 이름의 엔트리 포인트 함수를 포함한다. 엔트리 포인트란 프로그램 실행이 시작되는 지점을 말한다. 다음은 wWinMain의 시그내쳐(프로토타입)이다.

int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow);

 

 

  • hInstance는 handle의 인스턴스 또는 모듈의 인스턴스이다. 운영체제는 이 값을 exe 파일을 식별하는 데 사용한다. 인스턴스 핸들은 icon 또는 bitmap을 불러오는 것과 같은 어떤 윈도우즈 함수에 필요하다.
  • hPrevInstance은 16bit 윈도우즈에서 사용되었는데 현재는 의미없는 값이며 항상 0이다.
  • pCmdLine은 유니코드 문자열같은 커맨드라인 매개변수들이 포함된다.
  • nCmdShow는 메인 애플리케이션 윈도우가 최소화 또는 최대화가 될지, 그냥 보여질지를 결정하는 flag이다.


반환값은 int 타입 밸류인데 OS가 사용하지 않고 우리가 작성한 다른 프로그램에 상태 코드로서 전달할 수 있다.

WINAPI 는 호출 규약(calling convention)이다. 호출 규약은 함수가 어떻게 함수 호출자로부터 매개변수를 받을 것인지를 정의한다. 예를 들어, WINAPI 호출 규약은 매개변수가 스택에 나타나는 순서대로 정의한다.  

WinMain 함수는 커맨드라인 매개변수가 ANSI 스트링으로 전달된다는 것만 제외하면 wWinMain과 동일한 함수이다.
그러나 유니코드 스트링이 더 선호된다.

 

'게임 공부 > Windows API' 카테고리의 다른 글

HINSTANCE 타입과 HWND 타입의 차이  (0) 2020.06.12
윈도우의 메시지 처리 과정  (0) 2020.04.02
3. What is a Window?  (0) 2020.03.31
2. Working with Strings  (0) 2020.03.31
1. Windows coding conventions  (0) 2020.03.31



댓글