Microsoft Foundation 클래스 라이브러리
Microsoft Foundation Class Library개발자 | 마이크로소프트 |
---|---|
초기 릴리즈 | 전( |
안정된 릴리스 | 14.22.27821.0 / 2019년 7월 24일[1] |
기입처 | C++ |
운영 체제 | Microsoft Windows |
면허증. | 독자 사양 |
웹 사이트 | docs |
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일 Microsoft는 Visual 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를 출시했습니다.
특징들
이 섹션은 확인을 위해 추가 인용문이 필요합니다.(2011년 11월 (이 및 을 확인) |
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]새 클래스에서 제공됩니다.이 업데이트는 BCGSoft의 BCGControlBar 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일 |
「 」를 참조해 주세요.
레퍼런스
- ^ "Visual Studio 2019 Release Notes". Msdn.microsoft.com. Retrieved July 24, 2019.
- ^ Visual C++ Express의 개요
- ^ "Visual C++ 2008 Feature Pack shipped". Blogs.msdn.com. Retrieved April 26, 2008.
- ^ a b "Quick Tour of New MFC functionality". Blogs.msdn.com. Retrieved September 10, 2019.
- ^ "Visual Studio Express Edition FAQ". Microsoft.com. Archived from the original on June 11, 2011. Retrieved January 6, 2012.
- ^ "Microsoft Buys Into Inprise, Settles Disputes". Techweb.com. Archived from the original on October 17, 2007. Retrieved January 6, 2012.
- ^ Williams, Mickey; David Bennett. "Creating Your Own Message Maps". Inform IT.
- ^ "MFC Update Powered By BCGSoft". Msdn2.microsoft.com. Retrieved November 16, 2007.
- ^ "Visual C++ 2008 Feature Pack Release Download Page". Microsoft.com. Retrieved May 16, 2008.
- ^ 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.
- ^ 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.
- ^ 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.
- ^ "Microsoft Visual Studio 2005 Service Pack 1 MFC Security Update". Microsoft.com. Retrieved November 19, 2012.
- ^ "Where can I download Visual C++ Redistributables?". Retrieved June 10, 2019.
- ^ "Visual C++ - Exploring New C++ and MFC Features in Visual Studio 2010". Msdn.microsoft.com. Retrieved November 19, 2012.
- ^ "Update for Visual C++ 2013 and Visual C++ Redistributable Package". Msdn.microsoft.com. Retrieved January 8, 2017.
- ^ "Update for Visual C++ 2013 Redistributable Package". Retrieved June 10, 2019.
- ^ "Visual Studio 2015 Update 1". Msdn.microsoft.com. Retrieved June 12, 2016.
- ^ "Visual Studio 2015 Update 2". Msdn.microsoft.com. Retrieved June 12, 2016.
- ^ "Visual Studio 2015 Update 3". Msdn.microsoft.com. Retrieved June 28, 2016.
- ^ "Microsoft Visual Studio 2015 Update 3 (KB3165756)". Msdn.microsoft.com. Retrieved August 28, 2016.
추가 정보
- Prosise, Jeff (1999). Programming Windows with MFC (2 ed.). Microsoft Press. ISBN 9781572316959.
- Shepherd, George (1996). MFC Internals (7 ed.). Addison-Wesley. ISBN 9780201407211.
- Kruglinski, David (1997). Inside Visual C++ (4 ed.). Microsoft Press. ISBN 9781572315655.
- Microsoft (1995). Microsoft Visual C++: Programming with MFC (2 ed.). Microsoft Press. ISBN 9781556159213.
외부 링크
- 지원되는 최신 Visual C++ 다운로드 - Microsoft
- Visual C++ Redistributable은 어디서 다운로드할 수 있습니까?- Microsoft
- MSDN MFC 레퍼런스 - Microsoft
- MFC: Visual Studio 2005 이후 - Microsoft
- 차세대 Visual C++(MFC 9의 주요 업데이트 내용) - Microsoft