Библиотека классов Microsoft Foundation
![]() | |
Разработчик(и) | Майкрософт |
---|---|
Первоначальный выпуск | 1992 год |
Стабильная версия | 14.22.27821.0 / 24 июля 2019 г. [1] |
Написано в | С++ |
Операционная система | Microsoft Windows |
Лицензия | Собственный |
Веб-сайт | документы |
Библиотека классов 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.
Функции
[ редактировать ]Этот раздел нуждается в дополнительных цитатах для проверки . ( Ноябрь 2011 г. ) |
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 г. |
См. также
[ редактировать ]- Библиотека активных шаблонов (ATL)
- GLib
- ГТК
- гткмм
- ВЧЕРА
- Qt
- Стандартная библиотека шаблонов (STL)
- Библиотека шаблонов Windows (WTL)
- WxВиджеты
Примечания
[ редактировать ]- ^ Последняя версия библиотеки, официально поддерживающая Windows XP . [25]
Ссылки
[ редактировать ]- ^ «Примечания к выпуску Visual Studio 2019» . Msdn.microsoft.com . Проверено 24 июля 2019 г.
- ^ Обзор Visual C++ Express
- ^ «Выпущен пакет компонентов Visual C++ 2008» . Блоги.msdn.com . Проверено 26 апреля 2008 г.
- ^ Jump up to: а б «Краткий обзор новых функций MFC» . Блоги.msdn.com . Проверено 10 сентября 2019 г.
- ^ «Часто задаваемые вопросы по Visual Studio Express Edition» . Microsoft.com. Архивировано из оригинала 11 июня 2011 года . Проверено 6 января 2012 г.
- ^ «Microsoft покупает Inprise и разрешает споры» . Techweb.com. Архивировано из оригинала 17 октября 2007 года . Проверено 6 января 2012 г.
- ^ Уильямс, Микки; Дэвид Беннетт. «Создание собственных карт сообщений» . Сообщите ИТ-специалистам.
- ^ «Обновление MFC на базе BCGSoft» . Msdn2.microsoft.com . Проверено 16 ноября 2007 г.
- ^ «Страница загрузки выпуска пакета дополнительных компонентов Visual C++ 2008» . Microsoft.com . Проверено 16 мая 2008 г.
- ^ Jump up to: а б с д и ж г «MS11-025: Уязвимость в библиотеке Microsoft Foundation Class (MFC) делает возможным удаленное выполнение кода: 12 апреля 2011 г.» . Microsoft.com . Проверено 10 июня 2019 г.
- ^ Jump up to: а б с «Бюллетень по безопасности Microsoft MS09-035 — Средняя степень: уязвимости в библиотеке активных шаблонов Visual Studio делают возможным удаленное выполнение кода (969706)» . Microsoft.com . Проверено 19 ноября 2012 г.
- ^ Jump up to: а б с «Защитите свой компьютер от уязвимости безопасности библиотеки активных шаблонов (ATL)» . Архивировано из оригинала 26 октября 2010 года . Проверено 29 октября 2010 г.
- ^ «Обновление безопасности MFC для Microsoft Visual Studio 2005 с пакетом обновления 1» . Microsoft.com . Проверено 19 ноября 2012 г.
- ^ «Где я могу скачать распространяемые файлы Visual C++?» . Проверено 10 июня 2019 г.
- ^ «ИСПРАВЛЕНИЕ: ошибка «HRESULT: 0x80073715» при установке приложения с помощью файла .msi, если файл объединен с модулями слияния для библиотеки времени выполнения Visual C++ 2005» . Microsoft.com . 25 января 2021 г.
- ^ Jump up to: а б vcredist/source_links/README.md > Архив исходных ссылок
- ^ «Visual C++ — изучение новых функций C++ и MFC в Visual Studio 2010» . Msdn.microsoft.com . Проверено 19 ноября 2012 г.
- ^ «Обновление для Visual C++ 2013 и распространяемого пакета Visual C++» . Msdn.microsoft.com . Проверено 8 января 2017 г.
- ^ «Обновление для Visual C++ 2013 и распространяемого пакета Visual C++» . Msdn.microsoft.com . Проверено 8 января 2017 г.
- ^ «Обновление для распространяемого пакета Visual C++ 2013» . Проверено 10 июня 2019 г.
- ^ «Visual Studio 2015, обновление 1» . Msdn.microsoft.com . Проверено 12 июня 2016 г.
- ^ «Visual Studio 2015, обновление 2» . Msdn.microsoft.com . Проверено 12 июня 2016 г.
- ^ «Visual Studio 2015, обновление 3» . Msdn.microsoft.com . Проверено 28 июня 2016 г.
- ^ «Microsoft Visual Studio 2015, обновление 3 (KB3165756)» . Msdn.microsoft.com . Проверено 28 августа 2016 г.
- ^ Бинарная совместимость C++ между версиями Visual Studio.
Дальнейшее чтение
[ редактировать ]- Прозайз, Джефф (1999). Программирование Windows с помощью MFC (2-е изд.). Майкрософт Пресс . ISBN 9781572316959 .
- Шеперд, Джордж (1996). Внутреннее устройство MFC (7-е изд.). Аддисон-Уэсли . ISBN 9780201407211 .
- Круглинский, Дэвид (1997). Внутри Visual C++ (4-е изд.). Майкрософт Пресс . ISBN 9781572315655 .
- Майкрософт (1995). Microsoft Visual C++: Программирование с помощью MFC (2-е изд.). Майкрософт Пресс . ISBN 9781556159213 .
Внешние ссылки
[ редактировать ]- Последние поддерживаемые загрузки Visual C++ — Microsoft
- Где я могу скачать распространяемые файлы Visual C++? - Майкрософт
- Справочник MSDN MFC — Microsoft
- MFC: Visual Studio 2005 и более поздние версии — Microsoft
- Взгляд изнутри на следующее поколение Visual C++ (охватывает основные обновления MFC 9) — Microsoft