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
|
인수 | 의미 |
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
반응형
'프로그래밍 > ETC' 카테고리의 다른 글
Derek Wilson, "더블 버퍼링(Double Buffering), vsync, 그리고 트리플 버퍼링(Triple Buffering)은 무엇인가?" (3) | 2015.06.23 |
---|---|
FMOD 세팅하기 (0) | 2015.04.24 |
msimg32.lib, GDI (2) | 2015.04.23 |
GetKeyState, GetAsyncKeyState 차이 (0) | 2015.04.15 |
WinApi 정복 5장 (리소스) (0) | 2015.04.14 |
winmain 구성 그림그려보기 (0) | 2015.04.11 |
winmain (0) | 2015.04.11 |