시작에 앞서
API란?
“API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.”
라고 위키피디아 사전에 나와있습니다....
즉, 어떤 소프트웨어를 만들 때 가져다가 사용할 수 있는 함수들 이라고 표현 할 수 있을 것 같네요
일단 시작은
visual studio의 desktop application을 킵니다.
코드를 보기좋게 정리하는 시간을 가지겠습니다.
이 app을 키면 180줄정도의 코드가 나옵니다. 이 코드를 간단히 보기좋게 줄여보겠습니다.
int APIENTRY wWinMain()
{
MyRegisterClass(hInstance); //등록하기 위한 함수
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}
while (GetMessage(&msg, nullptr, 0, 0))
{ }
}
ATOM MyRegisterClass(HINSTANCE hInstance)
{
wcex.lpfnWndProc = WndProc;
}
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
HWND hWnd = CreateWindow();
return TRUE;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
}
}
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{}
대략적인 함수들입니다.
먼저 winMain함수가 main 메인함수.
그 안의 MyRegisterClass로 어떤 함수를 쓰겠다고 등록을 해줍니다. -- WndProc를 등록.
InitInstance로 초기화 해줍니다. --createWindow()를 만든다.
while()안에서 메세지 처리를 하고 계속 반복해줍니다.
그 메세지는 WinProc에서 처리를 해주게 됩니다. ex) WM_COMMAND, WM_PAINT 등...
그리고 WinProc는 callback 함수이기 때문에 어떠한 이벤트가 일어나면 처리해줍니다.
(callback함수: 코드를 순서대로 실행시키는데 비동기적으로 실행시킵니다. 그 함수가 실행될 수 있다면 처리하게 됩니다. .)
(비동기: 동시에 일어나지 않는다를 의미합니다. 요청과 결과가 동시에 일어나지 않을거라는 약속 - 즉, 어떠한 작업을 하면서 다른 작업도 한다. )
'비트교육 > API' 카테고리의 다른 글
API(6) -WinMain함수 알아보기 (0) | 2020.09.05 |
---|---|
API(5) -WM_PAINT에 대해 알아보기! (0) | 2020.09.03 |
API(4) -win32의 WndProc에 대해 알아보기! (0) | 2020.09.03 |
API(3) -win32의 WinProc에 대해 알아보기! (0) | 2020.09.03 |
API(2) (0) | 2020.09.03 |