Microsoft Foundation 클래스 라이브러리

Microsoft Foundation Class Library
Microsoft Foundation 클래스 라이브러리
개발자마이크로소프트
초기 릴리즈1992년; 30년 전(1992년)
안정된 릴리스
14.22.27821.0 / 2019년 7월 24일[1]
기입처C++
운영 체제Microsoft Windows
면허증.독자 사양
웹 사이트docs.microsoft.com/en-us/cpp/mfc/mfc-desktop-applications

Microsoft Foundation Class Library(MFC)는 Windows용 데스크톱응용 프로그램을 개발하기 위한 C++ 객체 지향 라이브러리입니다.

MFC는 1992년에 Microsoft에 의해 도입되어 급속히 널리 사용되고 있습니다.이후 마이크로소프트는 대체 애플리케이션 프레임워크를 도입했지만 MFC는 여전히 널리 사용되고 있습니다.

역사

MFC는 Windows API의 매우 얇은 객체 지향 C++ 래퍼로서 16비트 버전의 Windows와 함께 사용하기 위해 1992년에 마이크로소프트의 C/C++ 7.0 컴파일러와 함께 도입되었습니다.당시 C++는 상용 애플리케이션 소프트웨어 개발을 위해 C를 대체하기 시작했습니다.MFC 프로그램에서는 Windows API를 직접 호출할 필요가 거의 없습니다.대신 프로그램은 Microsoft Foundation Class 클래스에서 객체를 만들고 이러한 객체에 속하는 콜멤버 함수에서 객체를 만듭니다.이러한 함수의 대부분은 해당 API [2]함수와 이름을 공유합니다.

MFC의 특징 중 하나는 "Afx"를 많은 함수, 매크로 및 표준 사전 컴파일 헤더 이름 "stdafx.h"의 접두사로 사용하는 것입니다.초기 개발 과정에서 MFC가 된 것을 "애플리케이션 프레임워크 확장"이라고 불렀고 "Afx"로 줄였습니다.Microsoft Foundation Class(MFC; Microsoft Foundation Class)라는 이름이 릴리스 사이클에서 너무 늦게 채택되어 이러한 참조를 변경할 수 없습니다.

MFC 8.0은 Visual Studio 2005와 함께 출시되었습니다.MFC 9.0은 Visual Studio 2008과 함께 출시되었습니다.2008년 4월 7일 MicrosoftVisual Studio 2008 및 MFC [3]9에 대한 대역 외 업데이트로 MFC 클래스 업데이트를 발표했습니다.이 업데이트는 리본 관련 UI 위젯, 완전한 맞춤이 가능한 툴바, 자유롭게 띄우거나 도킹할 수 있는 도킹 창 등 새로운 사용자 인터페이스 구조를 특징으로 합니다.[4]

MFC는 처음에 Visual Studio의 상용 버전 중 하나였습니다.따라서 프리웨어 Visual C++[5] Express에는 포함되지 않습니다.그러나 2014년에 소개된 Visual Studio 커뮤니티 에디션에는 MFC가 포함되어 있습니다.

Borland의 Turbo C++ 컴파일러와 함께 사용하도록 설계된 OWL(Object Windows Library)은 Borland가 비슷한 시기에 선보인 경쟁 제품이었다.결국 Borland는 OWL 개발을 중단하고 Microsoft로부터 MFC[6] 헤더, 라이브러리 및 DLL 배포를 잠시 허가받았지만 MFC에 대한 완전한 통합 지원은 제공하지 않았습니다. Borland는 이후 OWL 프레임워크를 대체하는 Visual Component Library를 출시했습니다.

특징들

MFC는 Windows API의 일부를 C++ 클래스래핑하는 라이브러리입니다.이러한 클래스에서 Windows API가 기본 응용 프로그램 프레임워크를 사용할 수 있도록 하는 기능을 포함합니다.클래스는 많은 핸들 관리 윈도우즈 개체와 미리 정의된 창 및 공통 컨트롤에 대해 정의됩니다.

도입 당시 MFC는 Windows 메시지 처리(메시지[7] 맵 경유), 예외, 런타임타입식별(RTTI), 시리얼화 및 다이내믹클래스 인스턴스화에 C++ 매크로를 제공했습니다.메시지 처리용 매크로는 불필요한 가상 테이블 사용을 방지하여 메모리 소비를 줄이고 다양한 Visual C++ 제공 도구에 대해 완전한 언어를 해석하지 않고 코드를 편집 및 조작할 수 있는 보다 구체적인 구조를 제공하는 것을 목적으로 합니다.메시지 처리 매크로는 C++에 의해 제공되는 가상 기능 메커니즘을 대체했습니다.

Microsoft C++ 에서의 이러한 기능의 시리얼라이제이션, 예외, RTTI의 매크로는 몇 년 전부터 이용 가능했습니다.MFC의 32비트 버전은 Windows NT 3.1 이후의 Windows 운영체제용 컴파일러를 사용하여 언어 기능을 구현하고 매크로를 업데이트하여 커스텀 기능을 제공하는 대신 언어 기능을 단순하게 정리했습니다.미스트 실장, 상향 호환성을 실현합니다.

MFC 리본리소스 에디터를 사용하면 개발자는 RibbonX API와 같은 XML 기반의 선언 마크업을 사용할 필요 없이 리본을 그래픽으로 설계할 수 있습니다.선택적으로 리본 구성요소는 새로운 리본 클래스 메서드 세트를 호출하여 직접 프로그래밍할 수 있습니다.개발자는 필요에 따라 그래픽 및 프로그래밍 방식의 리본 개발을 혼합할 수 있습니다.MFC 어플리케이션마법사는 새로운 기능을 지원하도록 업그레이드되어 있습니다.어플리케이션에서 리본을 사용할지 도킹페인을 사용할지를 선택하는 체크박스가 포함되어 있습니다.새로운 기능은 이전 응용 프로그램이 계속 실행되도록 [4]새 클래스에서 제공됩니다.이 업데이트는 BCGSoftBCGControlBar Library Professional [8]Edition 위에 구축되어 있습니다.마이크로소프트는 [9]리본 사용자에게 추가적인 라이센스 요건을 부과했습니다.여기에는 Microsoft UI Design Guidelines 준수 요건 및 Microsoft Office와 경쟁하는 응용 프로그램에서 UI 사용을 금지하는 반경쟁 조항이 포함됩니다.

MFC는 스태틱라이브러리를 링크하거나 MFC DLL을 추가함으로써 사용할 수 있습니다.

버전

제품. 도서관 버전 발매일
이름. 버전
Microsoft C/C++ 7.0 mafxcw.lib MFC 1.0 1992
Microsoft Visual C++ 1.0 Visual C++ mfc200.disc MFC 2.0
Visual C++ 1.5 mfc250.120 MFC 2.5
Visual C++ 1.51 mfc250.120 MFC 2.51
비주얼 C++ 1.52c mfc250.120 MFC 2.5(Windows 3.x의 마지막 개발 플랫폼)
Microsoft Visual C++ 2.0 Visual C++ mfc30.disc MFC 3.0
Visual C++ 2.1 mfc30.disc MFC 3.1
Visual C++ mfc30.disc MFC 3.2
Microsoft Visual C++ 4.0 Visual C++ 4.0 mfc40.disc MFC 4.0 (mfc40.dll은 Windows 95에 포함되어 있습니다) 1995년 8월
Visual C++ 4.1 mfc40.disc MFC 4.1
Visual C++ 4.2 mfc42.199 MFC 4.2 (mfc42.dll은 Windows 98 오리지널릴리즈에 포함되어 있습니다) 1998년 3월
eMbedded Visual C++ 3.0 mfc42.199 MFC 4.2
Microsoft Visual C++ 5.0 Visual C++ mfc42.199 MFC 4.21, MFC 4.2로부터의 메이저업그레이드
Microsoft Visual C++ 6.0 Visual C++ 6.0 mfc42.199 MFC 6.0 1998
eMbedded Visual C++ 4.0 mfcce400.disc MFC 6.0
Microsoft Visual C++NET 2002 비주얼 C++NET 2002 (Visual C++ 7.0) mfc70.120 MFC 7.0 2002년 2월 13일
Microsoft Visual C++NET 2003 비주얼 C++NET 2003 (Visual C++ 7.1) mfc71.124 MFC 7.1 2003년 4월 24일
비주얼 C++NET 2003 + MS11-025 (KB2465373)[10] MFC 7.10.6119.0 2011년 4월 12일
Microsoft Visual C++ 2005 Visual C++ 2005 (Visual C++ 8.0) mfc80.120 8.0.50727.42 2006년 4월 10일
Visual C++ 2005 SP1 8.0.50727.762 2007년 8월 27일
Visual C++ 2005 SP1 + MS09-035 (KB973544)[11][12] 8.0.50727.4053 2009년 7월 28일
Visual C++ 2005 SP1 + MS11-025 (KB2467175)[10] 8.0.50727.5592 2011년 4월 12일
Visual C++ 2005 SP1 + MS11-025 (KB2538242)[10][13] 8.0.50727.6195(재분배 8.0.61000/8.0.61001[14]) 2011년 6월 14일
Microsoft Visual C++ 2008 Visual C++ 2008 (Visual C++ 9.0) mfc90.124 9.0.21022.8 2007년 11월 19일
Visual C++ 2008 + MS09-035 (KB973551)[11][12] 9.0.21022.218 2009년 7월 28일
Visual C++ 2008 (기능 팩 포함) 9.0.30411 2008년 4월 22일
Visual C++ 2008 SP1 9.0.30729.1 2008년 8월 11일
Visual C++ 2008 SP1 + MS09-035 (KB973552)[11][12] 9.0.30729.4148 2009년 7월 28일
Visual C++ 2008 SP1 + MS11-025 (KB2467174)[10] 9.0.30729.5570 2011년 4월 12일
Visual C++ 2008 SP1 + MS11-025 (KB2538243)[10] 9.0.30729.6161(버전 9.0.30729.5677) 2011년 6월 14일
Microsoft Visual C++ 2010 Visual C++ 2010 (Visual C++ 10.0) mfc100.120 10.0.30319.1 2010년[15] 4월 12일
Visual C++ 2010 + MS11-025 (KB2467173)[10] 10.0.30319.415 2011년 4월 12일
Visual C++ 2010 SP1 10.0.40219.1 2011년 3월 10일
Visual C++ 2010 SP1 + MS11-025 (KB2565063)[10] 10.0.40219.325 2011년 8월 9일
Microsoft Visual C++ 2012 Visual C++ 2012 (Visual C++ 11.0) mfc110.120 11.0.50727.1 2012년 9월 12일
Visual C++ 2012 업데이트 1 11.0.51106.1 2012년 11월 26일
Visual C++ 2012 업데이트 3 11.0.60610.1 2013년 6월 26일
Visual C++ 2012 업데이트 4 11.0.61030.0 2013년 11월 13일
Microsoft Visual C++ 2013 Visual C++ 2013 (Visual C++ 12.0) mfc120.120.199 12.0.21005.1 2013년 10월 17일
Visual C++ 2013 업데이트 2 12.0.30501.0 2014년 5월 12일
Visual C++ 2013 업데이트 5 + KB3138367 12.0.40649.5 2016년 2월?
Visual C++ 2013 업데이트 5 + KB3179560 12.0.40660.0 2016년[16] 7월 8일
Visual C++ 2013 업데이트 5 + KB4032938 12.0.40664.0 2017년[17] 7월 18일
Microsoft Visual C++ 2015 Visual C++ 2015 (Visual C++ 14.0) mfc140.120 14.0.23026.0 2015년 7월 20일
Visual C++ 2015 업데이트 1 14.0.23506.0 2015년[18] 11월 30일
Visual C++ 2015 업데이트 2 14.0.23918.0 2016년[19] 3월 30일
Visual C++ 2015 업데이트 3 14.0.24210.0 2016년[20] 6월 27일
Visual C++ 2015 업데이트 3 14.0.24212.0 2016년 8월 18일
Visual C++ 2015 업데이트 3 + KB3165756 14.0.24215.1 2016년[21] 9월 15일
Visual C++ 2015 업데이트 3 14.0.24516.0 2021년 10월 23일
Microsoft Visual C++ 2017 비주얼 C++ 15.0 mfc140.120 14.10.25008.0 2017년 3월 7일
Visual C++ 15.1? 14.10.25017.0 2017년 4월 5일?
비주얼 C++ 152 14.11.25325.0 2017년 5월 10일
비주얼 C++ 154 14.12.25810.0 2017년 10월 9일
비주얼 C++ 156 14.13.26020.0 2018년 3월 5일
비주얼 C++ 15.7 14.14.26405.0 2018년 5월 7일
Visual C++ 15.7.3? 14.14.26429.4 2018년 5월 31일
비주얼 C++ 158 14.15.26706.0 2018년 8월 14일
비주얼 C++ 159 14.16.27012.6 2018년 11월 13일
비주얼 C++ 15.9.5 14.16.27024.1 2019년 1월 8일
비주얼 C++ 15.9.6 14.16.27026.1 2019년 1월 24일
비주얼 C++ 15.9.9 14.16.27027.1 2019년 3월 12일
비주얼 C++ 15.9.15 14.16.27033.0 2019년 8월 13일
Microsoft Visual C++ 2019 Visual C++ 16.0.0 mfc140.120 14.20.27508.1 2019년 4월 2일?
Visual C++ 16.1.0 14.21.27702.2 2019년 5월 21일
Visual C++ 16.2.0 14.22.27821.0 2019년 7월 24일
Visual C++ 16.3.0 14.23.27820.0 2019년 9월 23일
Visual C++ 16.4.0 14.24.28127.4 2019년 12월 3일
Visual C++ 16.5.0 14.25.28508.3 2020년 3월 16일
Visual C++ 16.6.0 14.26.28720.3 2020년 5월 19일
Visual C++ 16.6.3 14.26.28808.1 2020년 6월 30일
Visual C++ 16.7.0 14.27.29016.0 2020년 8월 5일
Visual C++ 16.7.5 14.27.29112.0 2020년 9월 29일
Visual C++ 16.8.0 14.28.29325.2 2020년 11월 10일
Visual C++ 16.8.2 14.28.29334.0 2020년 11월 19일
Visual C++ 16.9.0 14.28.29910.0 2021년 3월 2일
Visual C++ 16.9.2 14.28.29913.0 2021년 3월 16일
비주얼 C++ 16.9.4 14.28.29914.0 2021년 4월 13일
Visual C++ 16.10.0 14.29.30037.0 2021년 5월 25일
Visual C++ 16.10.2 14.29.30038.0 2021년 6월 15일
비주얼 C++ 16.10.4 14.29.30040.0 2021년 7월 20일
Visual C++ 16.11.0 14.29.30133.0 2021년 8월 10일
비주얼 C++ 16.11.4 14.29.30135.0 2021년 10월 5일
Visual C++ 16.11.9 14.29.30319.0 2022년 1월 11일
Microsoft Visual C++ 2022 Visual C++ 17.0RC mfc140.120 14.30.30704.0 2021년 10월 13일
비주얼 C++ 17.0.5 14.31.30708.0 2022년 1월 14일
비주얼 C++ 17.1.0 14.31.30818.0 2021년 10월 27일
비주얼 C++ 17.1.0 14.31.30919.0 2021년 12월 23일
비주얼 C++ 17.1.0 14.31.31005.0 2022년 1월 26일
비주얼 C++ 17.1.0 14.31.31103.0 2022년 1월 26일
비주얼 C++ 17.2.0 14.32.31302.0 2022년 3월 17일
비주얼 C++ 17.2.0 14.32.31326.0 2022년 4월 9일
비주얼 C++ 17.2.5 14.32.31332.0 2022년 7월 1일

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Visual Studio 2019 Release Notes". Msdn.microsoft.com. Retrieved July 24, 2019.
  2. ^ Visual C++ Express의 개요
  3. ^ "Visual C++ 2008 Feature Pack shipped". Blogs.msdn.com. Retrieved April 26, 2008.
  4. ^ a b "Quick Tour of New MFC functionality". Blogs.msdn.com. Retrieved September 10, 2019.
  5. ^ "Visual Studio Express Edition FAQ". Microsoft.com. Archived from the original on June 11, 2011. Retrieved January 6, 2012.
  6. ^ "Microsoft Buys Into Inprise, Settles Disputes". Techweb.com. Archived from the original on October 17, 2007. Retrieved January 6, 2012.
  7. ^ Williams, Mickey; David Bennett. "Creating Your Own Message Maps". Inform IT.
  8. ^ "MFC Update Powered By BCGSoft". Msdn2.microsoft.com. Retrieved November 16, 2007.
  9. ^ "Visual C++ 2008 Feature Pack Release Download Page". Microsoft.com. Retrieved May 16, 2008.
  10. ^ a b c d e f g "MS11-025: Vulnerability in Microsoft Foundation Class (MFC) Library could allow remote code execution: April 12, 2011". Microsoft.com. Retrieved June 10, 2019.
  11. ^ a b c "Microsoft Security Bulletin MS09-035 - Moderate: Vulnerabilities in Visual Studio Active Template Library Could Allow Remote Code Execution (969706)". Microsoft.com. Retrieved November 19, 2012.
  12. ^ a b c "Protect your computer from the Active Template Library (ATL) security vulnerability". Archived from the original on October 26, 2010. Retrieved October 29, 2010.
  13. ^ "Microsoft Visual Studio 2005 Service Pack 1 MFC Security Update". Microsoft.com. Retrieved November 19, 2012.
  14. ^ "Where can I download Visual C++ Redistributables?". Retrieved June 10, 2019.
  15. ^ "Visual C++ - Exploring New C++ and MFC Features in Visual Studio 2010". Msdn.microsoft.com. Retrieved November 19, 2012.
  16. ^ "Update for Visual C++ 2013 and Visual C++ Redistributable Package". Msdn.microsoft.com. Retrieved January 8, 2017.
  17. ^ "Update for Visual C++ 2013 Redistributable Package". Retrieved June 10, 2019.
  18. ^ "Visual Studio 2015 Update 1". Msdn.microsoft.com. Retrieved June 12, 2016.
  19. ^ "Visual Studio 2015 Update 2". Msdn.microsoft.com. Retrieved June 12, 2016.
  20. ^ "Visual Studio 2015 Update 3". Msdn.microsoft.com. Retrieved June 28, 2016.
  21. ^ "Microsoft Visual Studio 2015 Update 3 (KB3165756)". Msdn.microsoft.com. Retrieved August 28, 2016.

추가 정보

외부 링크