비트교육/API

API(1)

ballde 2020. 9. 3. 11:34

시작에 앞서

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