[C++] MFC란 무엇인가?
- Language/C , C++ , C#
- 2018. 5. 10.
MFC란?
- 마이크로소프트 파운데이션 클래스 라이브러리(Microsoft Foundation Class Library)는 C++용 프로그램 라이브러리입니다.
- 윈도용 응용 프로그램의 통합 개발 환경인 마이크로소프트 비주얼 C++에 부속되는 클래스 라이브러리입니다.
- MFC를 사용하면 코딩의 효율을 극대화 시킬 수 있어 대부분의 C++ 개발자들이 사용합니다.
MFC의 특징
객체 지향 프로그래밍
- C++의 특성을 그대로 이어받습니다. (객체지향, C++의 모든 문법)
- 윈도우의 Object를 포함하는 시각적 객체를 사용합니다.
이벤트 처리방식
사용자 또는 시스템이 윈도우에 어떠한 동작을 했을 경우 그에 대응하여 움직이는 사건의 중심의 프로그램을 하며 (이것을 Event Driven Programming이라고 합니다.)
메세지 처리방식
윈도우 이벤트가 발생했을 경우 해당 이벤트를 메시지를 통해 알려주고 그 메시지를 받아서 그에 따른 Output을 합니다. (이것을 Message Driven Programming이라고 합니다.)
MFC의 장점
- 프로그램 개발 시간을 크게 단축시켜 줍니다. 기존의 Win32 API를 이용할때, 개발자가 직접하던 많은 실행 함수 대한 번거로움을 개선해 주었습니다.
- 객체지향을 이용하여 C++ 프로그래밍을 하면서도 Win32 SDK 함수를 그대로 사용할 수 있습니다.
- 안전한 동적 메모리 관리 그리고 할당 영역 검증, 디버깅 등의 기능을 활용하여 버그가 적은 즉 안전한 프로그램을 작성할 수 있습니다.
- 다른 운영 체제로 이식을 할 수 있다. 즉 MFC로 작성된 프로그램을 매킨토시나 유닉스 버전으로 포팅 할 수 있습니다.
- 개발자로 하여금 손쉬운 GUI 기반의 프로그램 제작 환경을 만들어 줍니다.
- ActiveX․OLE․ODBC 등의 다양한 인터페이스의 기본 제공으로 프로그래밍을 쉽게 만들어줍니다.
- Win32 SDK(API)에 비하여 유지 보수가 쉽습니다.
MFC의 구조
기본적으로 MFC프로젝트를 생성하면 위의 구조도와 같이 이루어져 있습니다. 프로젝트를 생성하면 위와 같은 계층구조에서 크게 벗어나지 않는 범위 내에서 파생 클래스로 모든 클래스를 상속받아서 만들어지게 됩니다. 그래서 처음부터 끝까지 모든 것을 프로그래머가 프로그래밍을 하는 것이 아니라, 공통적인 부분은 MFC클래스에서 제공하는 기능을 그대로 이용하고, 고유한 기능들만 프로그래머가 커스터마이징하여 끼워서 넣어주면 되어 프로그래머 입장에서 손쉽게 코딩을 할 수 있게 도와줍니다.
'Language > C , C++ , C#' 카테고리의 다른 글
[C++] 객체지향 프로그래밍이란 무엇인가? (0) | 2019.02.28 |
---|---|
[C언어/C++] 문자열을 입력하면 알파벳순으로 정렬하여 출력하는 알고리즘 (0) | 2018.10.22 |
[C#]으로 만드는 윈도우 폼 메모장 프로그램 (0) | 2018.05.09 |
[C#]으로 만드는 간단한 윈도우 폼 계산기 프로그램 (3) | 2018.05.08 |