728x90
반응형

MFC(Microsoft Foundation Class)는 마이크로소프트사가 만든 C++ 기반 윈도우 라이브러리입니다. MFC는 C++ 언어에 기반합니다.

MFC는 클래스 라이브러리가 제공하는 뛰어난 기능과 개발 도구들을 통해 프로그램 개발에 높은 생산성을 부여하고 있습니다.

현재는 .NET 기반에서 동작하는 라이브러리들이 제공되고 있지만, MFC는 비 닷넷 기반에서도 윈도우 프로그램을 개발할 수 있습니다.

 

MFC 주요 특징

  • 높은 생산성을 제공합니다.

MFC는 일반적인 응용 프로그램에서 공통으로 구현하는 기능을 클래스 라이브러리 형태로 제공합니다. 따라서 사용자는 구현하고자 하는 기능에 초점을 맞추어 소프트웨어를 개발할 수 있습니다. 또한 AppWizard나 ClassWizard는 자동화 코드를 생성시켜주는 도구로써 코딩 시간을 줄여 주는 데 큰 도움을 줍니다.

 

  • API 기반 프로그램과 대등한 속도를 가집니다.

MFC 기반 응용 프로그램은 수 많은 클래스들로 구성됩니다. 따라서 API 기반 프로그램 보다 무거울 수 밖에 없는데, 다양한 기법을 통해서 객체 생성 및 함수 호출을 최소화 시킴으로써 실행 속도 저하를 최소화 합니다.

 

  • API 함수를 직접 호출할 수 있습니다.

MFC는 기존 API 함수들을 클래스형태로 제공합니다. 따라서 코드 작성 과정에서 API 함수를 직접 호출해 사용할 수 있습니다. 실제로 MFC가 모든 API 함수의 기능을 제공하지 않기 때문에 API 함수를 직접 호출할 경우가 발생합니다.

 

CWinApp

CWinApp 클래스 계층도

CWinApp 클래스는 MFC 응용 프로그램의 초기화, 메시지 루프의 실행, 종료 등을 관리하는 응용 프로그램 클래스입니다. MFC를 이용하여 작성한 응용 프로그램은 CWinApp 클래스에서 유도된 클래스를 반드시 그리고 오직 하나 가집니다. 응용 프로그램 개체는 다른 전역 C++ 개체가 생성될 때 함께 생성되며 WinMain 함수가 호출되기 이전에 이미 생성되어 있습니다.

 

CWinApp 클래스는 프로그램을 구동시키는 기능을 갖고 있으며 중요한 메서드로 InitInstance(), Run(), ExitInstance() 가 있습니다. 그리고 MFC는 반드시 CWinApp 를 상속받은 파생클래스의 전역 객체가 있어야 합니다.

 

InitInstance() 메서드는 프로그램의 초기화 과정에서 자동으로 호출되며, ExitInstance() 메서드는 프로그램 종료 과정에서 자동으로 호출됩니다.

 

#include<afxwin.h>

classCHelloApp : publicCWinApp
{
public:
virtualBOOL InitInstance()
	{
		AfxMessageBox(_T("Hello, MFC"));
		returnFALSE;
	}
	virtualint ExitInstance()
	{
		AfxMessageBox(_T("ExitInstance"));
		returnCWinApp::ExitInstance();
	}
};

CHelloApp theApp;

위의 예제를 컴파일하면 오류가 발생한다면 MFC 클래스 라이브러리를 설정해줘야 합니다.

 

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기