■ 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 메세지를 만날 때까지 무한 루프를 돌면서 메세지를 윈도우 프로시저에 전달하는 기능을 한다.
'개발지식창고 > MFC' 카테고리의 다른 글
■ CFile 클래스 : 파일 입출력 클래스 (0) | 2010.07.30 |
---|---|
WinMain.cpp를 MFC 클래스로 구현하면... (0) | 2010.07.30 |
다중 도큐먼트 ( MDI : Multiple Document Interface ) (0) | 2010.07.30 |
RTTI 사용을 위한 CRuntimeClass와 매크로들 (0) | 2010.07.30 |
컴파일 시 Release 모드와 Debug 모드의 차이 (0) | 2010.07.30 |