1. WinMain함수


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

- hInstance : 프로그램의 인스턴스 핸들

- hPrevInstance : 바로 앞에 실행된 현재 프로그램의 인스턴스 핸들

없는 경우에는 NULL이 되어야하며 Win32에서는 항상 NULL

- lpCmdLine : 명령행으로 입력된 프로그램 인수. DOS의 argv에 해당

- nCmdShow : 프로그램이 실행될 형태 / 최소화, 보통모양 등이 전달




2. 윈도우 클래스

윈도우 클래스는 windows.h에 정의되어있는 구조체이다.


typedef struct tagWNDCLASS

{

    UINT        style;

    WNDPROC     lpfnWndProc;

    int         cbClsExtra;

    int         cbWndExtra;

    HINSTANCE   hInstance;

    HICON       hIcon;

    HCURSOR     hCursor;

    HBRUSH      hbrBackground;

    LPCSTR      lpszMenuName;

    LPCSTR      lpszClassName;

} WNDCLASS;


- style : 윈도우의 스타일을 정의

- lpfnWndProc : 메시지가 발생할 때마다 여기에 지정된 함수가 호출됨

- cbClsExtra, cbWndExtra : 윈도우가 내부적으로 아주 특수한 목적에 사용되는 공간. 사용되지 않으면 0으로 지정

- hInstance : 윈도우의 클래스를 사용하는 프로그램의 번호

- hIcon, hCursor : 윈도우가 사용할 마우스와 출력되는 아이콘을 정함.

- hbrBackground : 윈도우의 배경색상 정의, 보통 GetStockObject라는 함수를 사용하여 윈도우에서 기본적으로 제공하는 브러쉬를 사용

- lpszMenuName : 프로그램이 사용할 메뉴 지정

- lpszClassName : 윈도우 클래스의 이름을 정의. CreateWindow함수에 전달되며 

CreateWindow함수는 윈도우 클래스에서 정의한 값을 참조하여 윈도우를 생성한다

'Programming > WinAPI' 카테고리의 다른 글

악성코드에 자주 사용되는 함수목록  (0) 2017.03.04
[API함수] WaitForSingleObject  (0) 2017.03.02
WinAPI 핸들에 대한 이해  (0) 2017.02.08
API란?  (0) 2017.02.08
WinAPI 윈도우의 특징  (0) 2017.02.08

+ Recent posts