WinApi 정복 2장 (WinMain)

2015. 4. 14. 06:12프로그래밍/ETC

728x90
728x90
1. WinMain

헤더파일

다른 헤더가 필요하지 않고 windows.h만 포함시키면 거의 해결된다.


시작점

기존 프로그램의 main함수가 아니라 WinMain이 시작점이다.


시작 함수 원형

1
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance ,LPSTR lpszCmdParam,int nCmdShow) 
cs
1
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance ,LPSTR lpszCmdParam,int nCmdShow) 
cs


인수의미
hInstance프로그램의 인스턴스 핸들
hPrevInstance바로 앞에 실행된 현재 프로그램의 인스턴스 핸들. 없을 경우는 NULL이 되며 WIN32에서는 항상 NULL이다. 호환성을 위해서만 존재하는 인수이므로 신경쓰지 않아도 된다.
lpCmdLine명령행으로 입력된 프로그램 인수이다. 도스의 argv인수에 해당한다.
nCmdShow프로그램이 실행될 형태이며 최소화, 보통모양 등이 전달된다.


hInstance 이외에는 잘 사용되지 않는다. 인스턴스라는 말은 클래스가

메모리에 실제로 구현된 실체를 의미한다.

이것은 프로그램 자체를 일컫는 정수값이고 API 함수에서 수시로 사용한다.

그래서 전역변수로 g_hInst에 대입하여 이를 사용한다.


메시지 처리 함수

1
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
cs


WinMain의 모양의 대체로 일정하다. 메시지 처리 함수인 WndProc에 따라 프로그램이 달라진다.


특별한 경우를 제외하곤 이 두개의 함수가 모두 있어야 한다.


2. 윈도우 클래스


3. 메시지 루프


4. 윈도우 프로시저


5. 실습

728x90
반응형