■ SDK와 MFC

- SDK에서 제공하는 모든 기능이 다 MFC에 캡슐화 되어 있는 것은 아니라는 점에서 주의하라.

- 굳이 클래스 형태로 캡슐화 할 필요가 없는 기능들도 많이 있는데 MFC에서는 이런 함수들을 굳이 클래스로 만들지 않고, 그냥 SDK 형태로 사용하도록 두었다.

- 예를들어 GlobalAlloc 처럼 메모리를 할당하는 일은 특정 클래스에서만 하는 것이 아니라 언제, 어디서든 사용할 수 있는 기능이기 때문에 그냥 SDK 함수 형태로 사용한다.

 

 

■ WinMain 은 어디에?

- MFC는 어떠한 프로그램을 작성하더라도 WinMain 함수를 건드리지 않고 작성할 수 있도록 모든 것을 완벽하게 처리해 놓았다.

- MFC 내부에 들어 있는 WinMain 함수를 간략히 보면 다음과 같다.

 int APIENTRY WinMain( HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpCmdLine,

                                   int nCmdShow )

 {

     CWinApp *pApp = AfxGetApp() ;

     pApp->InitApplication() ;

     pApp->InitInstance() ;

     pApp->Run() ;

     pApp->ExitInstance() ;

 }

 

InitApplication 함수는 프로그램 초기화 기능을 수행하고, InitInstance 함수는 보통 재정의되는 함수로 도큐먼트 뷰를 등록하고, 메인 프레임 윈도우를 생성하는 일을 수행한다. Run 함수는 WM_QUIT 메세지를 만날 때까지 무한 루프를 돌면서 메세지를 윈도우 프로시저에 전달하는 기능을 한다. 

 

Posted by 모과이IT
,