Библиотека классов Microsoft Foundation

Объектно-ориентированная библиотека ОС Windows

Библиотека классов Microsoft Foundation
Разработчик(и)Майкрософт
Первоначальный выпуск1992 ; 32 года назад ( 1992 )
Стабильный релиз
14.22.27821.0 / 24 июля 2019 г. [1]
Написано вС++
Операционная системаМайкрософт Виндоус
ЛицензияЗапатентованный
Веб-сайтdocs.microsoft.com/en-us/cpp/mfc/mfc-desktop-applications

Microsoft Foundation Class Library (MFC) — это объектно-ориентированная библиотека C++ для разработки настольных приложений для Windows .

MFC был представлен Microsoft в 1992 году и быстро получил широкое распространение. Хотя Microsoft с тех пор представила альтернативные прикладные фреймворки, MFC по-прежнему широко используется.

История

MFC был представлен в 1992 году вместе с компилятором Microsoft C/C++ 7.0 для использования с 16-разрядными версиями Windows в качестве чрезвычайно тонкой объектно-ориентированной оболочки C++ для API Windows. В то время C++ только начинал заменять C для разработки коммерческого прикладного программного обеспечения. В программе MFC прямые вызовы API Windows требуются редко. Вместо этого программы создают объекты из классов Microsoft Foundation Class и вызывают функции-члены, принадлежащие этим объектам. Многие из этих функций разделяют свои имена с соответствующими функциями API. [2]

Одной из особенностей 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. 7 апреля 2008 года Microsoft выпустила обновление классов MFC в качестве внеочередного обновления для Visual Studio 2008 и MFC 9. [3] Обновление включает в себя новые конструкции пользовательского интерфейса, включая ленты и связанные виджеты пользовательского интерфейса , полностью настраиваемые панели инструментов , закрепляемые панели, которые можно свободно перемещать или закреплять на любой стороне, а также вкладки документов . [4]

MFC изначально был функцией коммерческих версий Visual Studio. Таким образом, он не включен в бесплатную версию Visual C++ Express . [5] Однако Community edition Visual Studio , представленная в 2014 году, включает MFC.

Object Windows Library (OWL), разработанная для использования с компилятором Borland Turbo C++ , была конкурирующим продуктом, представленным Borland примерно в то же время. В конце концов, Borland прекратила разработку OWL и лицензировала распространение заголовков, библиотек и DLL MFC от Microsoft [6] на короткое время, хотя она никогда не предлагала полностью интегрированную поддержку MFC. Позднее Borland выпустила Visual Component Library для замены фреймворка OWL.

Функции

MFC — это библиотека, которая оборачивает части API Windows в классы C++ , включая функциональность, которая позволяет им использовать фреймворк приложения по умолчанию . Классы определены для многих управляемых дескриптором объектов Windows, а также для предопределенных окон и общих элементов управления.

На момент своего появления MFC предоставлял макросы C++ для обработки сообщений Windows (через Message Maps [7] ), исключений , идентификации типов во время выполнения (RTTI), сериализации и создания динамических экземпляров классов. Макросы для обработки сообщений были направлены на сокращение потребления памяти путем избежания ненужного использования виртуальных таблиц , а также на предоставление более конкретной структуры для различных инструментов Visual C++ для редактирования и манипулирования кодом без разбора всего языка. Макросы обработки сообщений заменили механизм виртуальных функций, предоставляемый C++.

Макросы для сериализации, исключений и RTTI появились на несколько лет раньше, чем эти функции в Microsoft C++. 32-разрядные версии MFC для Windows NT 3.1 и более поздних операционных систем Windows использовали компиляторы, которые реализовали функции языка и обновили макросы, чтобы просто обернуть функции языка вместо предоставления настраиваемых реализаций, что обеспечило восходящую совместимость.

Редактор ресурсов ленты MFC позволяет разработчику проектировать ленту графически, вместо того чтобы использовать декларативную разметку на основе XML, такую ​​как RibbonX API . При желании компоненты ленты можно программировать напрямую, вызывая новый набор методов класса ленты. Разработчик может смешивать графическую и программную разработку ленты по своему усмотрению. Мастер приложений MFC также был обновлен для поддержки новых функций, включая флажок для выбора того, будет ли приложение использовать ленту или панели стыковки. Новые функции предоставляются в новых классах, так что старые приложения по-прежнему будут работать. [4] Это обновление основано на BCGSoft's BCGControlBar Library Professional Edition. [8] Microsoft ввела дополнительные лицензионные требования для пользователей лент. [9] К ним относятся требование соблюдать Microsoft UI Design Guidelines и антиконкурентный пункт, запрещающий использование UI в приложениях, которые конкурируют с Microsoft Office .

MFC можно использовать, подключив статическую библиотеку или добавив MFC DLL .

Версии

ПродуктБиблиотекаВерсияДата выпуска
ИмяВерсия
Microsoft C/C++ 7.0mafxcw.libМФЦ 1.01992
Microsoft Visual C++ 1.0Visual C++ 1.0mfc200.dllМФЦ 2.0
Visual C++ 1.5mfc250.dllМФЦ 2.5
Visual C++ 1.51mfc250.dllМФК 2.51
Visual C++ 1.52cmfc250.dllMFC 2.5 (Последняя платформа разработки для Windows 3.x )
Microsoft Visual C++ 2.0Visual C++ 2.0mfc30.dllМФЦ 3.0
Visual C++ 2.1mfc30.dllМФЦ 3.1
Visual C++ 2.2mfc30.dllМФЦ 3.2
Microsoft Visual C++ 4.0Visual C++ 4.0mfc40.dllMFC 4.0 (mfc40.dll входит в состав Windows 95 )Август 1995 г.
Visual C++ 4.1mfc40.dllМФЦ 4.1
Visual C++ 4.2mfc42.dllMFC 4.2 (mfc42.dll входит в состав оригинальной версии Windows 98 )Март 1998 г.
Встроенный Visual C++ 3.0mfc42.dllМФЦ 4.2
Microsoft Visual C++ 5.0Visual C++ 5.0mfc42.dllМФЦ 4.21
Microsoft Visual C++ 6.0Visual C++ 6.0mfc42.dllМФЦ 6.01998
Встроенный Visual C++ 4.0mfcce400.dllМФЦ 6.0
Microsoft Visual C++ .NET 2002Visual C++ .NET 2002 (Visual C++ 7.0)mfc70.dllМФЦ 7.013 февраля 2002 г.
Microsoft Visual C++ .NET 2003Visual C++ .NET 2003 (Visual C++ 7.1)mfc71.dllМФЦ 7.124 апреля 2003 г.
Visual C++ .NET 2003 + MS11-025 (KB2465373) [10]МФЦ 7.10.6119.012 апреля 2011 г.
Microsoft Visual C++ 2005Visual C++ 2005 (Visual C++ 8.0)mfc80.dll8.0.50727.4210 апреля 2006 г.
Visual C++ 2005 SP18.0.50727.76227 августа 2007 г.
Visual C++ 2005 SP1 + MS09-035 (KB973544) [11] [12]8.0.50727.405328 июля 2009 г.
Visual C++ 2005 SP1 + MS11-025 (KB2467175) [10]8.0.50727.559212 апреля 2011 г.
Visual C++ 2005 SP1 + MS11-025 (KB2538242) [10] [13]8.0.50727.6195 (включено в redist 8.0.61000/8.0.61001 [14] )14 июня 2011 г.
Visual C++ 2005 SP1 + MS11-025 (KB2643995) [15] [16]8.0.50727.62292021-01-25?
Microsoft Visual C++ 2008Visual C++ 2008 (Visual C++ 9.0)mfc90.dll9.0.21022.819 ноября 2007 г.
Visual C++ 2008 + MS09-035 (KB973551) [11] [12]9.0.21022.21828 июля 2009 г.
Visual C++ 2008 с пакетом функций9.0.3041122 апреля 2008 г.
Visual C++ 2008 SP19.0.30729.111 августа 2008 г.
Visual C++ 2008 SP1 + MS09-035 (KB973552) [11] [12]9.0.30729.414828 июля 2009 г.
Visual C++ 2008 SP1 + MS11-025 (KB2467174) [10]9.0.30729.557012 апреля 2011 г.
Visual C++ 2008 SP1 + MS11-025 (KB2538243) [10]9.0.30729.6161 (установщик имеет версию 9.0.30729.5677)14 июня 2011 г.
Microsoft Visual C++ 2010Visual C++ 2010 (Visual C++ 10.0)mfc100.dll10.0.30319.112 апреля 2010 г. [17]
Visual C++ 2010 + MS11-025 (KB2467173) [10]10.0.30319.41512 апреля 2011 г.
Visual C++ 2010 SP110.0.40219.110 марта 2011 г.
Visual C++ 2010 SP1 + MS11-025 (KB2565063) [10]10.0.40219.3259 августа 2011 г.
Microsoft Visual C++ 2012Visual C++ 2012 (Visual C++ 11.0)mfc110.dll11.0.50727.112 сентября 2012 г.
Visual C++ 2012 Обновление 111.0.51106.126 ноября 2012 г.
Visual C++ 2012 Обновление 311.0.60610.126 июня 2013 г.
Visual C++ 2012 Обновление 411.0.61030.013 ноября 2013 г.
Microsoft Visual C++ 2013Visual C++ 2013 (Visual C++ 12.0)mfc120.dll12.0.21005.117 октября 2013 г.
Visual C++ 2013 Обновление 212.0.30501.012 мая 2014 г.
Visual C++ 2013 Обновление 5 + KB313836712.0.40649.5Февраль 2016? [18] [16]
Visual C++ 2013 Обновление 5 + KB317956012.0.40660.08 июля 2016 г. [19]
Visual C++ 2013 Обновление 5 + KB403293812.0.40664.018 июля 2017 г. [20]
Microsoft Visual C++ 2015Visual C++ 2015 (Visual C++ 14.0)mfc140.dll14.0.23026.020 июля 2015 г.
Visual C++ 2015 Обновление 114.0.23506.030 ноября 2015 г. [21]
Visual C++ 2015 Обновление 214.0.23918.030 марта 2016 г. [22]
Visual C++ 2015 Обновление 314.0.24210.027 июня 2016 г. [23]
Visual C++ 2015 Обновление 314.0.24212.018 августа 2016 г.
Visual C++ 2015 Обновление 3 + KB316575614.0.24215.115 сентября 2016 г. [24]
Visual C++ 2015 Обновление 314.0.24245.013 ноября 2018 г.
Visual C++ 2015 Обновление 314.0.24247.213 июня 2023 г.
Microsoft Visual C++ 2017Visual C++ 15.0mfc140.dll14.10.25008.07 марта 2017 г.
Visual C++ 15.1?14.10.25017.05 апреля 2017 года?
Visual C++ 15.214.11.25325.010 мая 2017 г.
Visual C++ 15.414.12.25810.09 октября 2017 г.
Visual C++ 15.614.13.26020.05 марта 2018 г.
Visual C++ 15.714.14.26405.07 мая 2018 г.
Visual C++ 15.7.3?14.14.26429.431 мая 2018 г.
Visual C++ 15.814.15.26706.014 августа 2018 г.
Visual C++ 15.914.16.27012.613 ноября 2018 г.
Visual C++ 15.9.514.16.27024.18 января 2019 г.
Visual C++ 15.9.614.16.27026.124 января 2019 г.
Visual C++ 15.9.914.16.27027.112 марта 2019 г.
Visual C++ 15.9.1514.16.27033.013 августа 2019 г.
Visual C++ 15.9.6714.16.27052.08 октября 2024 г.
Microsoft Visual C++ 2019Visual C++ 16.0.0mfc140.dll14.20.27508.12 апреля 2019 года?
Visual C++ 16.1.014.21.27702.221 мая 2019 г.
Visual C++ 16.2.014.22.27821.024 июля 2019 г.
Visual C++ 16.3.014.23.27820.023 сентября 2019 г.
Visual C++ 16.4.014.24.28127.43 декабря 2019 г.
Visual C++ 16.5.014.25.28508.316 марта 2020 г.
Visual C++ 16.6.014.26.28720.319 мая 2020 г.
Visual C++ 16.6.314.26.28808.130 июня 2020 г.
Visual C++ 16.7.014.27.29016.05 августа 2020 г.
Visual C++ 16.7.514.27.29112.029 сентября 2020 г.
Visual C++ 16.7.814.27.29114.0 [примечание 1]10 ноября 2020 г.
Visual C++ 16.8.014.28.29325.210 ноября 2020 г.
Visual C++ 16.8.214.28.29334.019 ноября 2020 г.
Visual C++ 16.9.014.28.29910.02 марта 2021 г.
Visual C++ 16.9.214.28.29913.016 марта 2021 г.
Visual C++ 16.9.414.28.29914.013 апреля 2021 г.
Visual C++ 16.10.014.29.30037.025 мая 2021 г.
Visual C++ 16.10.214.29.30038.015 июня 2021 г.
Visual C++ 16.10.414.29.30040.020 июля 2021 г.
Visual C++ 16.11.014.29.30133.010 августа 2021 г.
Visual C++ 16.11.414.29.30135.05 октября 2021 г.
Visual C++ 16.11.914.29.30139.011 января 2022 г.
Visual C++ 16.11.3214.29.30153.014 ноября 2023 г.
Visual C++ 16.11.4114.29.30156.08 октября 2024 г.
Microsoft Visual C++ 2022Visual C++ 17.0.0RCmfc140.dll14.30.30704.013 октября 2021 г.
Visual C++ 17.0.514.31.30708.014 января 2022 г.
Visual C++ 17.1.014.31.30818.027 октября 2021 г.
Visual C++ 17.1.014.31.30919.023 декабря 2021 г.
Visual C++ 17.1.014.31.31005.026 января 2022 г.
Visual C++ 17.1.014.31.31103.026 января 2022 г.
Visual C++ 17.2.014.32.31302.017 марта 2022 г.
Visual C++ 17.2.014.32.31326.09 апреля 2022 г.
Visual C++ 17.2.514.32.31332.01 июля 2022 г.
Visual C++ 17.4.014.34.31931.09 ноября 2022 г.
Visual C++ 17.4.514.34.31938.014 февраля 2023 г.
Visual C++ 17.6.014.36.32532.016 мая 2023 г.
Visual C++ 17.7.114.38.32919.011 августа 2023 г.
Visual C++ 17.8.014.38.33130.015 ноября 2023 г.
Visual C++ 17.8.614.38.33135.06 февраля 2024 г.
Visual C++ 17.9.414.40.33617.119 марта 2024 г.
Visual C++ 17.9.414.40.33810.01 мая 2024 г.
Visual C++ 17.9.514.40.33816.08 октября 2024 г.

Смотрите также

Примечания

  1. ^ Последняя версия библиотеки официально поддерживает Windows XP . [25]

Ссылки

  1. ^ "Visual Studio 2019 Release Notes". Msdn.microsoft.com . Получено 24 июля 2019 г. .
  2. ^ Обзор Visual C++ Express
  3. ^ "Visual C++ 2008 Feature Pack отправлен". Blogs.msdn.com . Получено 26 апреля 2008 г. .
  4. ^ ab "Краткий обзор новых функциональных возможностей MFC". Blogs.msdn.com . Получено 10 сентября 2019 г. .
  5. ^ "Visual Studio Express Edition FAQ". Microsoft.com. Архивировано из оригинала 11 июня 2011 г. Получено 6 января 2012 г.
  6. ^ "Microsoft покупает Inprise, улаживает споры". Techweb.com. Архивировано из оригинала 17 октября 2007 г. Получено 6 января 2012 г.
  7. ^ Уильямс, Микки; Дэвид Беннетт. «Создание собственных карт сообщений». Inform IT.
  8. ^ "MFC Update Powered By BCGSoft". Msdn2.microsoft.com . Получено 16 ноября 2007 г. .
  9. ^ "Страница загрузки выпуска пакета функций Visual C++ 2008". Microsoft.com . Получено 16 мая 2008 г.
  10. ^ abcdefg "MS11-025: Уязвимость в библиотеке Microsoft Foundation Class (MFC) делает возможным удаленное выполнение кода: 12 апреля 2011 г.". Microsoft.com . Получено 10 июня 2019 г. .
  11. ^ abc "Microsoft Security Bulletin MS09-035 - Умеренный: Уязвимости в Visual Studio Active Template Library делают возможным удаленное выполнение кода (969706)". Microsoft.com . Получено 19 ноября 2012 г. .
  12. ^ abc "Защитите свой компьютер от уязвимости безопасности Active Template Library (ATL)". Архивировано из оригинала 26 октября 2010 г. Получено 29 октября 2010 г.
  13. ^ "Microsoft Visual Studio 2005 Service Pack 1 MFC Security Update". Microsoft.com . Получено 19 ноября 2012 г. .
  14. ^ "Где я могу скачать Visual C++ Redistributables?" . Получено 10 июня 2019 г. .
  15. ^ "ИСПРАВЛЕНИЕ: ошибка "HRESULT: 0x80073715" при установке приложения с помощью файла .msi, если файл объединен с модулями слияния для библиотеки времени выполнения Visual C++ 2005". Microsoft.com . 25 января 2021 г.
  16. ^ ab vcredist/source_links/README.md > Архив ссылок на источники
  17. ^ "Visual C++ - Изучение новых возможностей C++ и MFC в Visual Studio 2010". Msdn.microsoft.com . Получено 19 ноября 2012 г. .
  18. ^ "Обновление для Visual C++ 2013 и Visual C++ Redistributable Package". Msdn.microsoft.com . Получено 8 января 2017 г. .
  19. ^ "Обновление для Visual C++ 2013 и Visual C++ Redistributable Package". Msdn.microsoft.com . Получено 8 января 2017 г. .
  20. ^ "Обновление для распространяемого пакета Visual C++ 2013" . Получено 10 июня 2019 г. .
  21. ^ "Visual Studio 2015 Update 1". Msdn.microsoft.com . Получено 12 июня 2016 г. .
  22. ^ "Visual Studio 2015 Update 2". Msdn.microsoft.com . Получено 12 июня 2016 г. .
  23. ^ "Visual Studio 2015 Update 3". Msdn.microsoft.com . Получено 28 июня 2016 г. .
  24. ^ "Microsoft Visual Studio 2015 Update 3 (KB3165756)". Msdn.microsoft.com . Получено 28 августа 2016 г. .
  25. ^ Двоичная совместимость C++ между версиями Visual Studio

Дальнейшее чтение

  • Последние поддерживаемые загрузки Visual C++ - Microsoft
  • Где я могу загрузить Visual C++ Redistributables? - Microsoft
  • Справочник MSDN MFC - Microsoft
  • MFC: Visual Studio 2005 и более поздние версии — Microsoft
  • Взгляд изнутри на следующее поколение Visual C++ (охватывает основные обновления MFC 9) - Microsoft
Взято с "https://en.wikipedia.org/w/index.php?title=Microsoft_Foundation_Class_Library&oldid=1251835437"