마이크로소프트 파운데이션 클래스 라이브러리

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
마이크로소프트 파운데이션 클래스 라이브러리
개발자 마이크로소프트
발표일 1992년
최근 버전 10.0.40219.1 [1] [2] [3] / 2010년 3월 3일 (웹 공개) [1] [3] [2]
프로그래밍 언어 C++
운영 체제 마이크로소프트 윈도
종류 개발 라이브러리
라이선스 사유
웹사이트 MFC 참조

마이크로소프트 파운데이션 클래스 라이브러리 (Microsoft Foundation Class Library, MFC)는 마이크로소프트에서 만든 윈도 APIC++로 둘러 싼 라이브러리이다. 클래스들은 윈도의 공용 컨트롤과 스마트 포인터를 사용하는 창 개체이다.

역사[편집]

이 문단의 내용출처가 분명하지 않습니다. 지금 바로 이 문단을 편집하여, 참고하신 문헌이나 신뢰할 수 있는 출처를 주석 등으로 표기해 주세요. 검증되지 않은 내용은 삭제될 수도 있습니다. 내용에 대한 의견이 있으시다면 토론 문서에서 나누어 주세요.

MFC는 1992년 16비트 윈도용 마이크로소프트 C/C++ 7.0 컴파일러에서 처음 도입되었다. 그 당시에는 C++이 소프트웨어 제품 개발 언어로 활용되기 시작하던 때였다. 마이크로 소프트는 개발도구 시장에서 경쟁력을 얻기 위해 C++을 활용하여 MFC를 만들었다. MFC의 구조는 후에 시맨틱사에 매각된 매킨토시의 TCL(Think Class Library)에서 영향을 받았다.

볼랜드의 터보 C++터보 파스칼에서는 OWL(Object Windows Library)이란 경쟁제품이 있었다. 객체 지향 모델을 더 엄격하게 따르고 있었기 때문에, OWL은 한때 MFC보다 인기 있었다. 하지만 윈도의 새로운 기능에 대한 업데이트가 늦어지게 되면서, 시장 지배력을 잃어버렸다. 그 이후 볼랜드는 OWL의 개발을 중단하고, 이를 대체하는 VCL을 개발하여 델파이C++빌더에서 사용하고 있다. C++빌더는 MFC를 라이선스 받아 포함하고 있다.

마이크로소프트에서 MFC가 만들어졌음에도 많은 프로그래머들에게 MFC는 너무 복잡했기 때문에, 마이크로소프트는 상용 소프트웨어 개발에 비주얼 베이직을 쓰라고 권장하였다. MFC와 비주얼 베이직의 후속작으로 Windows Forms가 출시되었으며 C++ 관리 모드 확장으로 쓸 수 있다. 비주얼 스튜디오 2005 출시와 함께 닷넷 프레임워크의 기능들을 더 쉬운 문법으로 쓸 수 있게 되었다.

비주얼 베이직을 강조하면서도 새 버전의 비주얼 스튜디오에는 항상 MFC가 공급되었다. 그래서 많은 프로그래머들이 MFC를 사용하게 되었다.

컴파일러 버전 MFC 버전
Microsoft C/C++ 7.0 MFC 1.0
Visual C++ 1.0 MFC 2.0
Visual C++ 1.5 MFC 2.5
Visual C++ 2.0 MFC 3.0
Visual C++ 2.1 MFC 3.1
Visual C++ 2.2 MFC 3.2
Visual C++ 4.0 MFC 4.0
Visual C++ 4.1 MFC 4.1
Visual C++ 4.2 MFC 4.2
Visual C++ 5.0 MFC 4.21 (mfc42.dll)
Visual C++ 6.0 MFC 6.0 (mfc42.dll)
Visual C++ .NET 2002 MFC 7.0 (mfc70.dll)
Visual C++ .NET 2003 MFC 7.1 (mfc71.dll)
Visual C++ 2005 MFC 8.0 (mfc80.dll)
Visual C++ 2008 MFC 9.0 (mfc90.dll)
Visual C++ 2010 MFC 10.0 (mfc100.dll)

기능[편집]

MFC가 처음 도입되었을 때 마이크로소프트는 기본적인 C++ 문법에 메시지 처리, 예외 처리, 런타임 처리, 동적 클래스 객체 생성을 위한 매크로를 추가해 C++ 언어를 확장하려 했다. 이런 매크로를 활용한 시스템은 컴파일러의 타입 검사를 무시하므로 버그를 가져올 수 있었다. 32비트 버전의 MFC부터 이것이 개선되었다.

MFC의 가장 큰 장점은 윈도 API를 객체지향적으로 프로그래밍할 수 있다는 것이다. 또한 윈도의 자원과 연관된 형들은 그들을 생성한 객체가 죽게 되면 자동으로 핸들을 해제해 준다는 장점도 있다. 게다가 MFC의 문서/뷰 프레임워크는 데이터 모델과 유저 인터페이스, 제어 로직을 분리한다는 MVC 디자인을 자연스럽게 만들어준다.

하지만 MFC는 다중 운영체제를 지원하지 않는다는 약점이 있다. Mainsoft가 만든 유닉스용 MFC가 있으며[1], 1990년대 마이크로소프트는 맥 OS용 MFC를 만들기도 했지만, 계속 개발하지 않았다.

MFC Feature Pack을 지원하여, 리본 메뉴 등의 UI를 IDE에서 자동으로 작성해준다.

주석[편집]

  1. Microsoft Visual Studio 2010 Service Pack 1.
  2. Microsoft Visual C++ 2010 Redistributable Package (x64).
  3. Microsoft Visual C++ 2010 SP1 Redistributable Package (x86).

같이 보기[편집]

바깥 고리[편집]