Jump to content

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

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

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

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

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

Одной из особенностей MFC является использование «Afx» в качестве префикса для многих функций, макросов и стандартного предварительно скомпилированного имени заголовка «stdafx.h». На ранних этапах разработки то, что стало MFC, называлось «Расширения платформы приложений» и сокращенно «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] Однако версия Visual Studio для сообщества , представленная в 2014 году, включает MFC.

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

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

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

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

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

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

Продукт Библиотека Версия Дата выпуска
Имя Версия
Microsoft Си/С++ 7.0 mafxcw.lib МФЦ 1.0 1992
Microsoft Visual С++ 1.0 Визуальный С++ 1.0 mfc200.dll МФЦ 2.0
Визуальный С++ 1.5 mfc250.dll МФЦ 2.5
Визуал С++ 1.51 mfc250.dll МФЦ 2.51
Визуал С++ 1.52c mfc250.dll MFC 2.5 (последняя платформа разработки для Windows 3.x )
Microsoft Visual С++ 2.0 Визуал С++ 2.0 mfc30.dll МФЦ 3.0
Визуал С++ 2.1 mfc30.dll МФЦ 3.1
Визуальный С++ 2.2 mfc30.dll МФЦ 3.2
Microsoft Visual С++ 4.0 Визуал С++ 4.0 mfc40.dll MFC 4.0 (mfc40.dll входит в состав Windows 95 ) август 1995 г.
Визуал С++ 4.1 mfc40.dll МФЦ 4.1
Визуал С++ 4.2 mfc42.dll MFC 4.2 (mfc42.dll включен в исходную версию Windows 98 ) март 1998 г.
Встроенный Visual C++ 3.0 mfc42.dll МФЦ 4.2
Microsoft Visual С++ 5.0 Визуал С++ 5.0 mfc42.dll МФЦ 4.21
Microsoft Visual С++ 6.0 Визуал С++ 6.0 mfc42.dll МФЦ 6.0 1998
Встроенный Visual C++ 4.0 mfcce400.dll МФЦ 6.0
Microsoft Visual C++.NET 2002. Visual C++ .NET 2002 (Visual C++ 7.0) mfc70.dll МФЦ 7.0 13 февраля 2002 г.
Microsoft Visual C++.NET 2003. Visual C++ .NET 2003 (Visual C++ 7.1) mfc71.dll МФЦ 7.1 24 апреля 2003 г.
Visual C++ .NET 2003 + MS11-025 (KB2465373) [10] МФЦ 7.10.6119.0 12 апреля 2011 г.
Microsoft Visual С++ 2005. Visual C++ 2005 (Visual C++ 8.0) mfc80.dll 8.0.50727.42 10 апреля 2006 г.
Visual С++ 2005 с пакетом обновления 1 8.0.50727.762 27 августа 2007 г.
Visual C++ 2005 SP1 + MS09-035 (KB973544) [11] [12] 8.0.50727.4053 28 июля 2009 г.
Visual C++ 2005 SP1 + MS11-025 (KB2467175) [10] 8.0.50727.5592 12 апреля 2011 г.
Visual C++ 2005 SP1 + MS11-025 (KB2538242) [10] [13] 8.0.50727.6195 (включен в повторный список 8.0.61000/8.0.61001 [14] ) 14 июня 2011 г.
Visual C++ 2005 SP1 + MS11-025 (KB2643995) [15] [16] 8.0.50727.6229 2021-01-25?
Microsoft Visual С++ 2008. Visual C++ 2008 (Visual C++ 9.0) mfc90.dll 9.0.21022.8 19 ноября 2007 г.
Visual C++ 2008 + MS09-035 (KB973551) [11] [12] 9.0.21022.218 28 июля 2009 г.
Visual C++ 2008 с пакетом функций 9.0.30411 22 апреля 2008 г.
Visual С++ 2008 с пакетом обновления 1 9.0.30729.1 11 августа 2008 г.
Visual C++ 2008 SP1 + MS09-035 (KB973552) [11] [12] 9.0.30729.4148 28 июля 2009 г.
Visual C++ 2008 SP1 + MS11-025 (KB2467174) [10] 9.0.30729.5570 12 апреля 2011 г.
Visual C++ 2008 SP1 + MS11-025 (KB2538243) [10] 9.0.30729.6161 (установщик имеет версию 9.0.30729.5677) 14 июня 2011 г.
Microsoft Visual С++ 2010. Visual C++ 2010 (Visual C++ 10.0) mfc100.dll 10.0.30319.1 12 апреля 2010 г. [17]
Visual C++ 2010 + MS11-025 (KB2467173) [10] 10.0.30319.415 12 апреля 2011 г.
Visual С++ 2010 с пакетом обновления 1 (SP1) 10.0.40219.1 10 марта 2011 г.
Visual C++ 2010 SP1 + MS11-025 (KB2565063) [10] 10.0.40219.325 9 августа 2011 г.
Microsoft Visual С++ 2012. Visual C++ 2012 (Visual C++ 11.0) mfc110.etc 11.0.50727.1 12 сентября 2012 г.
Visual C++ 2012, обновление 1 11.0.51106.1 26 ноября 2012 г.
Visual C++ 2012, обновление 3 11.0.60610.1 26 июня 2013 г.
Visual C++ 2012, обновление 4 11.0.61030.0 13 ноября 2013 г.
Microsoft Visual С++ 2013. Visual C++ 2013 (Visual C++ 12.0) mfc120.etc 12.0.21005.1 17 октября 2013 г.
Visual C++ 2013, обновление 2 12.0.30501.0 12 мая 2014 г.
Visual C++ 2013, обновление 5 + KB3138367 12.0.40649.5 Февраль 2016? [18] [16]
Обновление 5 для Visual C++ 2013 + KB3179560 12.0.40660.0 8 июля 2016 г. [19]
Visual C++ 2013, обновление 5 + KB4032938 12.0.40664.0 18 июля 2017 г. [20]
Microsoft Visual С++ 2015 Visual C++ 2015 (Visual C++ 14.0) mfc140.etc 14.0.23026.0 20 июля 2015 г.
Visual C++ 2015, обновление 1 14.0.23506.0 30 ноября 2015 г. [21]
Visual C++ 2015, обновление 2 14.0.23918.0 30 марта 2016 г. [22]
Visual C++ 2015, обновление 3 14.0.24210.0 27 июня 2016 г. [23]
Visual C++ 2015, обновление 3 14.0.24212.0 18 августа 2016 г.
Visual C++ 2015, обновление 3 + KB3165756 14.0.24215.1 15 сентября 2016 г. [24]
Visual C++ 2015, обновление 3 14.0.24516.0 23 октября 2021 г.
Microsoft Visual С++ 2017 Визуал С++ 15.0 mfc140.etc 14.10.25008.0 7 марта 2017 г.
Visual С++ 15.1? 14.10.25017.0 5 апреля 2017 года?
Визуал С++ 15.2 14.11.25325.0 10 мая 2017 г.
Визуальный С++ 15.4 14.12.25810.0 9 октября 2017 г.
Визуальный С++ 15.6 14.13.26020.0 5 марта 2018 г.
Визуал С++ 15.7 14.14.26405.0 7 мая 2018 г.
Visual С++ 15.7.3? 14.14.26429.4 31 мая 2018 г.
Визуальный С++ 15.8 14.15.26706.0 14 августа 2018 г.
Визуальный С++ 15.9 14.16.27012.6 13 ноября 2018 г.
Визуал С++ 15.9.5 14.16.27024.1 8 января 2019 г.
Визуальный С++ 15.9.6 14.16.27026.1 24 января 2019 г.
Визуальный С++ 15.9.9 14.16.27027.1 12 марта 2019 г.
Визуал С++ 15.9.15 14.16.27033.0 13 августа 2019 г.
Microsoft Visual С++ 2019 Визуальный С++ 16.0.0 mfc140.etc 14.20.27508.1 2 апреля 2019 года?
Визуальный С++ 16.1.0 14.21.27702.2 21 мая 2019 г.
Визуал С++ 16.2.0 14.22.27821.0 24 июля 2019 г.
Визуальный С++ 16.3.0 14.23.27820.0 23 сентября 2019 г.
Визуальный С++ 16.4.0 14.24.28127.4 3 декабря 2019 г.
Визуальный С++ 16.5.0 14.25.28508.3 16 марта 2020 г.
Визуал С++ 16.6.0 14.26.28720.3 19 мая 2020 г.
Визуальный С++ 16.6.3 14.26.28808.1 30 июня 2020 г.
Визуальный С++ 16.7.0 14.27.29016.0 5 августа 2020 г.
Визуал С++ 16.7.5 14.27.29112.0 29 сентября 2020 г.
Визуальный С++ 16.7.8 14.27.29114.0 [примечание 1] 10 ноября 2020 г.
Визуал С++ 16.8.0 14.28.29325.2 10 ноября 2020 г.
Визуальный С++ 16.8.2 14.28.29334.0 19 ноября 2020 г.
Визуальный С++ 16.9.0 14.28.29910.0 2 марта 2021 г.
Визуальный С++ 16.9.2 14.28.29913.0 16 марта 2021 г.
Визуальный С++ 16.9.4 14.28.29914.0 13 апреля 2021 г.
Визуал С++ 16.10.0 14.29.30037.0 25 мая 2021 г.
Визуал С++ 16.10.2 14.29.30038.0 15 июня 2021 г.
Визуал С++ 16.10.4 14.29.30040.0 20 июля 2021 г.
Визуальный С++ 16.11.0 14.29.30133.0 10 августа 2021 г.
Визуал С++ 16.11.4 14.29.30135.0 5 октября 2021 г.
Визуальный С++ 16.11.9 14.29.30139.0 11 января 2022 г.
Визуальный С++ 16.11.32 14.29.30153.0 14 ноября 2023 г.
Microsoft Visual С++ 2022 Visual С++ 17.0.0RC mfc140.etc 14.30.30704.0 13 октября 2021 г.
Визуал С++ 17.0.5 14.31.30708.0 14 января 2022 г.
Визуальный С++ 17.1.0 14.31.30818.0 27 октября 2021 г.
Визуальный С++ 17.1.0 14.31.30919.0 23 декабря 2021 г.
Визуальный С++ 17.1.0 14.31.31005.0 26 января 2022 г.
Визуальный С++ 17.1.0 14.31.31103.0 26 января 2022 г.
Визуальный С++ 17.2.0 14.32.31302.0 17 марта 2022 г.
Визуальный С++ 17.2.0 14.32.31326.0 9 апреля 2022 г.
Визуальный С++ 17.2.5 14.32.31332.0 1 июля 2022 г.
Визуальный С++ 17.4.0 14.34.31931.0 9 ноября 2022 г.
Визуальный С++ 17.4.5 14.34.31938.0 14 февраля 2023 г.
Визуальный С++ 17.6.0 14.36.32532.0 16 мая 2023 г.
Визуальный С++ 17.7.1 14.38.32919.0 11 августа 2023 г.
Визуал С++ 17.8.0 14.38.33130.0 15 ноября 2023 г.
Визуальный С++ 17.8.6 14.38.33135.0 6 февраля 2024 г.
Визуальный С++ 17.9.4 14.40.33617.1 19 марта 2024 г.
Визуальный С++ 17.9.4 14.40.33810.0 1 мая 2024 г.

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Последняя версия библиотеки, официально поддерживающая Windows XP . [25]
  1. ^ «Примечания к выпуску Visual Studio 2019» . Msdn.microsoft.com . Проверено 24 июля 2019 г.
  2. ^ Обзор Visual C++ Express
  3. ^ «Выпущен пакет компонентов Visual C++ 2008» . Блоги.msdn.com . Проверено 26 апреля 2008 г.
  4. ^ Jump up to: а б «Краткий обзор новых функций MFC» . Блоги.msdn.com . Проверено 10 сентября 2019 г.
  5. ^ «Часто задаваемые вопросы по Visual Studio Express Edition» . Microsoft.com. Архивировано из оригинала 11 июня 2011 года . Проверено 6 января 2012 г.
  6. ^ «Microsoft покупает Inprise и разрешает споры» . Techweb.com. Архивировано из оригинала 17 октября 2007 года . Проверено 6 января 2012 г.
  7. ^ Уильямс, Микки; Дэвид Беннетт. «Создание собственных карт сообщений» . Сообщите ИТ-специалистам.
  8. ^ «Обновление MFC на базе BCGSoft» . Msdn2.microsoft.com . Проверено 16 ноября 2007 г.
  9. ^ «Страница загрузки выпуска пакета дополнительных компонентов Visual C++ 2008» . Microsoft.com . Проверено 16 мая 2008 г.
  10. ^ Jump up to: а б с д и ж г «MS11-025: Уязвимость в библиотеке Microsoft Foundation Class (MFC) делает возможным удаленное выполнение кода: 12 апреля 2011 г.» . Microsoft.com . Проверено 10 июня 2019 г.
  11. ^ Jump up to: а б с «Бюллетень по безопасности Microsoft MS09-035 — Средняя степень: уязвимости в библиотеке активных шаблонов Visual Studio делают возможным удаленное выполнение кода (969706)» . Microsoft.com . Проверено 19 ноября 2012 г.
  12. ^ Jump up to: а б с «Защитите свой компьютер от уязвимости безопасности библиотеки активных шаблонов (ATL)» . Архивировано из оригинала 26 октября 2010 года . Проверено 29 октября 2010 г.
  13. ^ «Обновление безопасности MFC для Microsoft Visual Studio 2005 с пакетом обновления 1» . Microsoft.com . Проверено 19 ноября 2012 г.
  14. ^ «Где я могу скачать распространяемые файлы Visual C++?» . Проверено 10 июня 2019 г.
  15. ^ «ИСПРАВЛЕНИЕ: ошибка «HRESULT: 0x80073715» при установке приложения с помощью файла .msi, если файл объединен с модулями слияния для библиотеки времени выполнения Visual C++ 2005» . Microsoft.com . 25 января 2021 г.
  16. ^ Jump up to: а б vcredist/source_links/README.md > Архив исходных ссылок
  17. ^ «Visual C++ — изучение новых функций C++ и MFC в Visual Studio 2010» . Msdn.microsoft.com . Проверено 19 ноября 2012 г.
  18. ^ «Обновление для Visual C++ 2013 и распространяемого пакета Visual C++» . Msdn.microsoft.com . Проверено 8 января 2017 г.
  19. ^ «Обновление для Visual C++ 2013 и распространяемого пакета Visual C++» . Msdn.microsoft.com . Проверено 8 января 2017 г.
  20. ^ «Обновление для распространяемого пакета Visual C++ 2013» . Проверено 10 июня 2019 г.
  21. ^ «Visual Studio 2015, обновление 1» . Msdn.microsoft.com . Проверено 12 июня 2016 г.
  22. ^ «Visual Studio 2015, обновление 2» . Msdn.microsoft.com . Проверено 12 июня 2016 г.
  23. ^ «Visual Studio 2015, обновление 3» . Msdn.microsoft.com . Проверено 28 июня 2016 г.
  24. ^ «Microsoft Visual Studio 2015, обновление 3 (KB3165756)» . Msdn.microsoft.com . Проверено 28 августа 2016 г.
  25. ^ Бинарная совместимость C++ между версиями Visual Studio.

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

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9b05366f5262b3e44f9e8876d28a7495__1719024840
URL1:https://arc.ask3.ru/arc/aa/9b/95/9b05366f5262b3e44f9e8876d28a7495.html
Заголовок, (Title) документа по адресу, URL1:
Microsoft Foundation Class Library - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)