Кіріспе

Windows операциялық жүйесінің объектіге бағытталған кітапханасы

Microsoft Foundation Class Library (MFC) – Windows үшін десктоптық қолданбаларды жасауға арналған C++ объектіге бағытталған кітапхана. MFC 1992 жылы Microsoft компаниясымен ұсынылған және жылдам түрде кеңінен қолданысқа енді. Microsoft одан бері баламалы қолданбалық аяларды енгізгенімен, MFC әлі де кеңінен қолданылуда.

Тарих

MFC 1992 жылы Microsoft-тың C/C++ 7.0 компиляторымен бірге, Windows-тың 16 биттік нұсқалары үшін Windows API-ге арналған өте жұқа, объектіге бағытталған C++ орамасы ретінде пайдалануға енгізілді. Сол кезде C++ коммерциялық қолданбалы бағдарламалық жасақтаманы әзірлеу үшін C-ді алмастыра бастады. MFC бағдарламасында Windows API-ге тікелей шақырулар көбінесе қажет болмайды. Оның орнына, бағдарламалар Microsoft Foundation Class кластарынан нысандар құрады және осы нысандарға тиесілі мүшелік функцияларды шақырады. Көптеген функциялар өз атауларын тиісті API функцияларымен бөліседі. MFC-нің бір ерекшелігі – көптеген функциялардың, макростардың алдына "Afx" префиксі қойылуы және стандартты алдын ала компиляцияланған бас файлдың аты "stdafx.h" болуы. Дамудың алғашқы кезеңдерінде MFC "Application Framework Extensions" деп аталып, "Afx" деп қысқартылған. Microsoft Foundation Classes (MFC) атауы осы сілтемелерді өзгерту үшін шығарылым циклында тым кеш қабылданды. MFC 8.0 Visual Studio 2005-пен бірге, ал MFC 9.0 Visual Studio 2008-пен бірге шығарылды. 2008 жылдың 7 сәуірінде Microsoft Visual Studio 2008 және MFC 9 үшін жаңартуты, бағдарламалық топтан тыс жаңарту ретінде жариялады. Жаңартуда жаңа пайдаланушы интерфейсі құрылымдары, соның ішінде ленталар мен олармен байланысты UI элементтері, толыққанды бейімделетін құралдар панельдері, кез келген жаққа жылжытуға немесе қосылуға болатын жылмалы панельдер және құжаттардың қойындылары бар. MFC бастапқыда Visual Studio-ның коммерциялық нұсқаларының мүмкіндігі болды. Сондықтан ол тегін Visual C++ Express нұсқасына кірмейді. Дегенмен, 2014 жылы ұсынылған Visual Studio-ның Community нұсқасына MFC кіреді. Borland-тың Turbo C++ компиляторымен пайдалану үшін жасалған Object Windows Library (OWL) – Borland-тың сол шамада ұсынған бәсекелес өнімі. Ақырында, Borland OWL-ді дамытуды тоқтатты және қысқа мерзімге MFC бас файлдарын, кітапханаларын және DLL-дерін Microsoft-тан лицензиялады, бірақ ешқашан MFC-ге толыққанды интеграцияланған қолдау көрсетпеді. Кейіннен Borland OWL фреймворкін алмастыру үшін Visual Component Library-ді шығарды.

Ерекшеліктері

MFC – Windows API-нің бөліктерін C++ кластарында орап, оның ішінде оларға әдепкі қолданбалық фреймворкті пайдалануға мүмкіндік беретін функционалдықты қамтитын кітапхана. Көптеген Windows нысандары, сондай-ақ алдын ала анықталған терезелер мен жиі қолданылатын басқару элементтері үшін кластар анықталған. MFC енгізілген кезде Windows хабарларын өңдеу (Message Maps арқылы), ерекше жағдайлар, орындалу кезіндегі типті анықтау (RTTI), деректерді сақтау және динамикалық түрде сыныптар құру үшін C++ макростарын ұсынды. Хабарларды өңдеуге арналған макростардың мақсаты – артық виртуалды кестелерді пайдаланудан аулақ болып, жадты үнемдеу және Visual C++ құралдарына кодты толық тілді талдамай өңдеуге және өзгертуге қолайлы құрылымды ұсыну болды. Хабарларды өңдеу макростары C++ ұсынған виртуалды функция механизмін алмастырды. Деректерді сақтау, ерекше жағдайлар және RTTI макростары Microsoft C++-та осы мүмкіндіктер пайда болғанға дейін бірнеше жыл бұрын қолданылды. Windows NT 3.1 және одан кейінгі Windows операциялық жүйелері үшін MFC-нің 32 биттік нұсқалары тілдік мүмкіндіктерді іске асыратын компиляторларды пайдаланды және макростарды жаңартып, тілдік мүмкіндіктерді бейімделген іске асыруларды ұсынудың орнына жай ғана орап, жоғары деңгейде үйлесімділікті қамтамасыз етті. MFC лента ресурстарын өңдеу құралы әзірлеушіге RibbonX API сияқты XML-ге негізделген декларативтік белгілеуді пайдаланудың орнына лентаны графикалық түрде жобалауға мүмкіндік береді. Лента компоненттерін жаңа лента класының әдістерін шақыру арқылы тікелей бағдарламалауға болады. Әзірлеуші ыңғайлылыққа қарай графикалық және бағдарламалық лента әзірлеуін біріктіре алады. MFC қолданба шебері жаңа мүмкіндіктерді қолдау үшін жаңартылды, соның ішінде қосымша лентаны немесе жылдам кірістіру тақталарын қолданатынын таңдауға арналған белгіше қойылды. Жаңа функционалдық жаңа кластарда ұсынылған, сондықтан ескі қолданбалар жұмыс істеуін жалғастырады. Microsoft ленталарды пайдаланушыларға қосымша лицензиялық талаптарды қойды. Оларға 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++ 1.0 mfc200. dll MFC 2.0 Visual C++ 1.5 mfc250. dll MFC 2.5 Visual C++ 1.51 mfc250. dll MFC 2.51 Visual C++ 1.52c mfc250. dll MFC 2.5 (Windows 3.x үшін соңғы даму платформасы) Microsoft Visual C++ 2.0 Visual C++ 2.0 mfc30. dll MFC 3.0 Visual C++ 2.1 mfc30. dll MFC 3.1 Visual C++ 2.2 mfc30. dll MFC 3.2 Microsoft Visual C++ 4.0 Visual C++ 4.0 mfc40. dll MFC 4.0 (mfc40. dll Windows 95-ке қосылған) 1995 жылдың тамызы Visual C++ 4.1 mfc40. dll MFC 4.1 Visual C++ 4.2 mfc42. dll MFC 4.2 (mfc42. dll Windows 98 бастапқы нұсқасына қосылған) 1998 жылғы наурыз eMbedded Visual C++ 3.0 mfc42. dll MFC 4.2 Microsoft Visual C++ 5.0 Visual C++ 5.0 mfc42. dll MFC 4.21 Microsoft Visual C++ 6.0 Visual C++ 6.0 mfc42. dll MFC 6.0 1998 eMbedded Visual C++ 4.0 mfcce400. dll MFC 6.0 Microsoft Visual C++ NET 2002 Visual C++ NET 2002 (Visual C++ 7.0) mfc70. dll MFC 7.0 2002 жылдың 13 ақпаны Microsoft Visual C++ NET 2003 Visual C++ NET 2003 (Visual C++ 7.1) mfc71. dll MFC 7.1 2003 жылғы 24 сәуір Visual C++ NET 2003 + MS11 025 (KB2465373) MFC 7.10.6119.0 2011 жылғы 12 сәуір Microsoft Visual C++ 2005 Visual C++ 2005 (Visual C++ 8.0) mfc80. dll 8.0.50727.42 2006 жылдың 10 сәуірі Visual C++ 2005 SP1 8.0.50727.762 2007 жылдың 27 тамызы Visual C++ 2005 SP1 + MS09 035 (KB973544) 8.0.50727.4053 2009 жылдың 28 шілдесі Visual C++ 2005 SP1 + MS11 025 (KB2467175) 8.0.50727.6195 (redist 8.0.61000/8.0.61001) 2011 жылдың 14 маусымы Visual C++ 2005 SP1 + MS11 025 (KB2643995) 8.0.50727.6229 2021 жылдың 25 қаңтары Microsoft Visual C++ 2008 Visual C++ 2008 (Visual C++ 9.0) mfc90. dll 9.0.21022.8 2007 жылдың 19 қарашасы Visual C++ 2008 + MS09 035 (KB973551) Visual C++ 2010 + MS11 025 (KB2467173) Visual C++ 2013 Жаңарту 5 + KB4032938 12.0.40664.0 2017 жылдың 18 шілдесі Microsoft Visual C++ 2015 Visual C++ 2015 (Visual C++ 14.0) mfc140. dll 14.0.23026.0 2015 жылдың 20 шілдесі Visual C++ 2015 Update 1 14.0.23506.0 2015 жылдың 30 қарашасы Visual C++ 2015 Update 2 14.0.23918.0 2016 жылдың 30 наурызы Visual C++ 2015 Update 3 14.0.24210.0 2016 жылдың 27 маусымы Visual C++ 2015 Update 3 14.0.24212.0 2016 жылдың 18 тамызы Visual C++ 2015 Update 3 + KB3165756 14.0.24215.1 2016 жылдың 15 қыркүйегі Visual C++ 2015 Update 3 14.0.24516.0 2021 жылдың 23 қазаны Microsoft Visual C++ 2017 Visual C++ 15.0 mfc140. dll 14.10.25008.0 2017 жылдың 7 наурызы Visual C++ 15.1 14.10.25017.0 2017 жылдың 5 сәуірі Visual C++ 15.2 14.11.25325.0 2017 жылдың 10 мамыры Visual C++ 15.4 14.12.25810.0 2017 жылдың 9 қазаны Visual C++ 15.6 14.13.26020.0 2018 жылдың 5 наурызы Visual C++ 15.7 14.14.26405.0 2018 жылдың 7 мамыры Visual C++ 15.7 14.14.26429.4 2018 жылдың 31 мамыры Visual C++ 15.8 14.15.26706.0 2018 жылдың 14 тамызы Visual C++ 15.9 14.16.27012.6 2018 жылдың 13 қарашасы Visual C++ 15.9.5 14.16.27024.1 2019 жылдың 8 қаңтары Visual C++ 15.9.6 14.16.27026.1 2019 жылдың 24 қаңтары Visual C++ 15.9.9 14.16.27027.1 2019 жылдың 12 наурызы Visual C++ 15.9.15 14.16.27033.0 2019 жылдың 13 тамызы Microsoft Visual C++ 2019 Visual C++ 16.0.0 mfc140. dll 14.20.27508.1 2019 жылдың 2 сәуірі Visual C++ 16.1.0 14.21.27702.2 2019 жылдың 21 мамыры Visual C++ 16.2.0 14.22.27821.0 2019 жылдың 24 шілдесі Visual C++ 16.3.0 14.23.27820.0 2019 жылдың 23 қыркүйегі Visual C++ 16.4.0 14.24.28127.4 2019 жылдың 3 желтоқсаны Visual C++ 16.5.0 14.25.28508.3 2020 жылдың 16 наурызы Visual C++ 16.6.0 14.26.28720.3 2020 жылдың 19 мамыры Visual C++ 16.6.3 14.26.28808.1 2020 жылдың 30 маусымы Visual C++ 16.7.0 14.27.29016.0 2020 жылдың 5 тамызы Visual C++ 16.7.5 14.27.29112.0 2020 жылдың 29 қыркүйегі Visual C++ 16.7.8 14.27.29114.0 Windows XP-ді ресми түрде қолдайтын кітапхананың соңғы нұсқасы. 2020 жылдың 10 қарашасы Visual C++ 16.8.0 14.28.29325.2 2020 жылдың 10 қарашасы Visual C++ 16.8.2 14.28.29334.0 2020 жылдың 19 қарашасы Visual C++ 16.9.0 14.28.29910.0 2021 жылдың 2 наурызы Visual C++ 16.9.2 14.28.29913.0 2021 жылдың 16 наурызы Visual C++ 16.9.4 14.28.29914.0 2021 жылдың 13 сәуірі Visual C++ 16.10.0 14.29.30037.0 2021 жылдың 25 мамыры Visual C++ 16.10.2 14.29.30038.0 2021 жылдың 15 маусымы Visual C++ 16.10.4 14.29.30040.0 2021 жылдың 20 шілдесі Visual C++ 16.11.0 14.29.30133.0 2021 жылдың 10 тамызы Visual C++ 16.11.4 14.29.30135.0 2021 жылдың 5 қазаны Visual C++ 16.11.9 14.29.30139.0 2022 жылдың 11 қаңтары Visual C++ 16.11.32 14.29.30153.0 2023 жылдың 14 қарашасы Microsoft Visual C++ 2022 Visual C++ 17.0.0 RC mfc140. dll 14.30.30704.0 2021 жылдың 13 қазаны Visual C++ 17.0.5 14.31.30708.0 2022 жылдың 14 қаңтары Visual C++ 17.1.0 14.31.30818.0 2021 жылдың 27 қазаны Visual C++ 17.1.0 14.31.30919.0 2021 жылдың 23 желтоқсаны Visual C++ 17.1.0 14.31.31005.0 2022 жылдың 26 қаңтары Visual C++ 17.1.0 14.31.31103.0 2022 жылдың 26 қаңтары Visual C++ 17.2.0 14.32.31302.0 2022 жылдың 17 наурызы Visual C++ 17.2.0 14.32.31326.0 2022 жылдың 9 сәуірі Visual C++ 17.2.5 14.32.31332.0 2022 жылдың 1 шілдесі Visual C++ 17.4.0 14.34.31931.0 2022 жылдың 9 қарашасы Visual C++ 17.4.5 14.34.31938.0 2023 жылдың 14 ақпаны Visual C++ 17.6.0 14.36.32532.0 2023 жылдың 16 мамыры Visual C++ 17.7.1 14.38.32919.0 2023 жылдың 11 тамызы Visual C++ 17.8.0 14.38.33130.0 2023 жылдың 15 қарашасы Visual C++ 17.8.6 14.38.33135.0 2024 жылдың 6 ақпаны Visual C++ 17.9.4 14.40.33617.1 2024 жылдың 19 наурызы