Разработчик (и) | Microsoft |
---|---|
Первоначальный выпуск | 1992; 28 лет назад (1992 г.) |
Стабильный выпуск | 14.22.27821.0 / 24 июля 2019 г. |
Написано на | C ++ |
Операционная система | Microsoft Windows |
Лицензия | Собственность |
Веб-сайт | docs.microsoft.com / en-us / cpp / mfc / mfc-desktop-applications |
Библиотека Microsoft Foundation Class (MFC) - это C++ объектно-ориентированная библиотека для разработки настольных приложений для Windows.
MFC была представлена Microsoft в 1992 году и быстро получила широкое распространение. Хотя с тех пор Microsoft представила альтернативные платформы приложений, MFC по-прежнему широко используется.
MFC был представлен в 1992 году вместе с компилятором Microsoft C / C ++ 7.0 для использования с 16-битными версиями Windows в качестве чрезвычайно тонкой объектно-ориентированной оболочки C ++ для Windows API. C ++ в то время только начинал заменять C для разработки коммерческого прикладного программного обеспечения. В программе MFC прямые вызовы Windows API требуются редко. Вместо этого программы создают объекты из классов Microsoft Foundation Class и вызывают функции-члены, принадлежащие этим объектам. Многие из этих функций имеют общие имена с соответствующими функциями API.
Одна из особенностей MFC - использование "Afx" в качестве префикса для многих функций, макросов и стандартного предварительно скомпилированного заголовка name " 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.. В обновлении представлены новые конструкции пользовательского интерфейса, в том числе ленты и связанные с ними виджеты пользовательского интерфейса, полностью настраиваемые панели инструментов, закрепляемые панели, которые можно свободно перемещать или прикреплять к любая сторона и вкладки документов.
MFC изначально была функцией коммерческих версий Visual Studio. Таким образом, он не входит в бесплатное программное обеспечение Visual C ++ Express. Однако выпуск Visual Studio от сообщества , представленный в 2014 году, включает MFC.
Object Windows Library (OWL), разработанная для использования с компилятором Borland Turbo C ++, была конкурирующим продуктом, представленным Borland примерно в то же время. В конце концов, Borland прекратила разработку OWL и на короткое время лицензировала распространение заголовков MFC, библиотек и DLL от Microsoft, хотя никогда не предлагала полностью интегрированную поддержку MFC. Позднее Borland выпустила библиотеку визуальных компонентов, чтобы заменить структуру OWL.
MFC - это библиотека, которая обертывает части Windows API в C ++ классы, включая функции, позволяющие использовать по умолчанию рамки приложения. Классы определены для многих дескрипторов -управляемых объектов Windows, а также для предопределенных окон и общих элементов управления.
На момент своего появления MFC предоставляла макросы C ++ для обработки сообщений Windows (через Карты сообщений ), исключений, идентификация типа во время выполнения (RTTI), сериализация и создание экземпляра динамического класса. Макросы для обработки сообщений были нацелены на сокращение потребления памяти за счет предотвращения беспричинного использования виртуальной таблицы, а также на обеспечение более конкретной структуры для различных инструментов, поставляемых Visual C ++, для редактирования кода и управления им без синтаксического анализа всего языка. Макросы обработки сообщений заменили механизм виртуальной функции, предоставляемый C ++.
Макросы для сериализации, исключений и RTTI предшествовали появлению этих функций в Microsoft C ++ на несколько лет. 32-разрядные версии MFC для Windows NT 3.1 и более поздних версий операционных систем Windows использовали компиляторы, которые реализовали языковые функции и обновили макросы, чтобы просто обернуть языковые функции вместо предоставления настраиваемых реализации, реализуя восходящую совместимость.
Редактор ресурсов ленты MFC позволяет разработчику создавать ленту графически вместо того, чтобы использовать декларативную разметку на основе XML, такую как RibbonX API. При желании компоненты ленты можно программировать напрямую, вызывая новый набор методов класса ленты. Разработчик может сочетать графическую и программную ленточную разработку по своему усмотрению. Мастер приложений MFC также был обновлен для поддержки новых функций, включая флажок, позволяющий выбрать, будет ли приложение использовать ленту или закрепляемые панели. Новые функции предоставляются в новых классах, поэтому старые приложения продолжают работать. Это обновление основано на версии Library Professional Edition. Microsoft ввела дополнительные лицензионные требования к пользователям лент. К ним относятся требование соблюдать рекомендации Microsoft по дизайну пользовательского интерфейса и антиконкурентная оговорка, запрещающая использование пользовательского интерфейса в приложениях, которые конкурируют с Microsoft Office.
MFC можно использовать путем связывания статической библиотеки или добавив MFC DLL.
Продукт | Библиотека | Версия | Дата выпуска | |
---|---|---|---|---|
Имя | Версия | |||
Microsoft C / C ++ 7.0 | MFC 1.0 | 1992 | ||
Microsoft Visual C ++ 1.0 | Visual C ++ 1.0 | 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 (mfc 40.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, крупное обновление MFC 4.2. | |
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 г. |
Microsoft Visual C ++.NET 2003 | Visual C ++.NET 2003 (Visual C ++ 7.1) | mfc71.dll | MFC 7.1 | апрель 2003 г. |
Visual C ++.NET 2003 + MS11-025 | MFC 7.10.6119.0 | апрель 2011 г. | ||
Microsoft Visual C ++ 2005 | Visual C ++ 2005 (Visual C ++ 8.0) | mfc80.dll | 8.0.50727.42 | октябрь 2005 г. |
Visual C ++ 2005 SP1 | 8.0.50727.762 | июнь 2007 | ||
Visual C ++ 2005 SP1 + MS09-035 | 8.0.50727.4053 | июль 2009 г. | ||
Visual C ++ 2005 SP1 + MS11-025 (KB2467175) | 8.0.50727.5592 | апрель 2011 г. | ||
Visual C ++ 2005 SP1 + MS11-025 (KB2538242) | 8.0.50727.6195 (входит в redist 8.0.61000 / 8.0.61001) | J une 2011 | ||
Microsoft Visual C ++ 2008 | Visual C ++ 2008 (Visual C ++ 9.0) | mfc90.dll | 9.0.21022.8 | ноябрь 2007 г. |
Visual C ++ 2008 с пакетом дополнительных компонентов | 9.0.30411 | апрель 2008 г. | ||
Visual C ++ 2008 SP1 | 9.0.30729.1 | август 2008 г. | ||
Visual C ++ 2008 SP1 + MS09-035 | 9.0.30729.4148 | июль 2009 г. | ||
Visual C ++ 2008 SP1 + MS11-025 (KB2467174) | 9.0.30729.5570 | апрель 2011 г. | ||
Visual C ++ 2008 SP1 + MS11-025 (KB2538243) | 9.0.30729.6161 (версия установщика 9.0.30729.5677) | июнь 2011 г. | ||
Microsoft Visual C ++ 2010 | Visual C ++ 2010 (Visual C ++ 10.0) | mfc100.dll | 10.0.30319.1 | апрель 2010 г. |
Visual C ++ 2010 + MS11-025 | 10.0.30319.415 | апрель 2011 г. | ||
Visual C ++ 2010 SP1 | 10.0.40219.1 | март 2011 г. | ||
Visual C ++ 2010 SP1 + MS11-025 | 10.0.40219.325 | август 2011 | ||
Microsoft Visual C ++ 2012 | Visual C ++ 2012 (Visual C ++ 11.0) | mfc110.dll | 11.0.50727.1 | 26 июля 2012 г. |
Visual C ++ 2012 с обновлением 1 | 11.0.51106.1 | 5 ноября, 2012 | ||
Visual C ++ 2012 с обновлением 3 | 11.0.60610.1 (также включен в redist 11.0.61030) | 26 июня 2013 г. | ||
Microsoft Visual C ++ 2013 | Visual C ++ 2013 (Visual C ++ 12.0) | mfc120.dll | 12.0.21005.1 | 5 октября 2013 г. |
Visual C ++ 2013 с обновлением 2 | 12.0.30501.0 | 30 декабря 2014 г. | ||
Visual C ++ 2013 с обновлением 5 + KB3179560 | 12.0.40660.0 | 8 июля 2016 г. | ||
Visual C ++ 2013 с обновлением 5 + KB4032938 | 12.0.40664.0 | 18 июля 2017 г. | ||
Microsoft Visual C ++ 2015 | Visual C ++ 2015 (Visual C ++ 14.0) | mfc140. dll | 14.0.23026.0 | 20 июля 2015 г. |
Visual C ++ 2015, обновление 1 | 14.0.23506.0 | 30 ноября 2015 г. | ||
Visual C ++ 2015, обновление 2 | 14.0.23918.0 | 30 марта 2016 г. | ||
Visual C ++ 2015, обновление 3 | 14.0.24210.0 | 27 июня, 2016 | ||
Visual C ++ 2015 U pdate 3 + KB3165756 | 14.0.24215.0 | 2 августа 2016 г. | ||
Microsoft Visual C ++ 2017 | Visual C ++ 15.0 | mfc140.dll | 14.10.25008.0 | 7 марта 2017 г. |
Visual C ++ 15.2 | 14.11.25325.0 | 10 мая 2017 г. | ||
Visual C ++ 15.4 | 14.12.25810.0 | 10 октября 2017 г. | ||
Visual C ++ 15.6 | 14.13.26020.0 | 6 марта 2018 г. | ||
Visual C ++ 15.7 | 14.14.26405.0 | 7 мая 2018 г. | ||
Visual C ++ 15.7.3? | 14.14.26429.4 | 31 мая 2018 г. | ||
Visual C ++ 15.8 | 14.15.26706.0 | 14 августа 2018 г. | ||
Visual C ++ 15.9 | 14.16.27012.6 | 13 ноября 2018 г. | ||
Visual C ++ 15.9.5 | 14.16.27024.1 | 10 января 2019 г. | ||
Visual C ++ 15.9.6 | 14.16.27026.1 | 24 января 2019 г. | ||
Visual C ++ 15.9.9 | 14.16.27027.1 | 12 марта 2019 г. | ||
Microsoft Visual C ++ 2019 | Visual C ++ 16.0RC | mfc140.dll | 14.20.27404.0 | 27 февраля 2019 г. |
Visual C ++ 16.0RC.3 | 14.20.27508.1 | 19 марта 2019 г. | ||
Visual C ++ 16.1.0 | 14.21.27702.2 | 21 мая 2019 г. | ||
Visual C ++ 16.2.0 | 14.22.27821.0 | 24 июля 2019 г. | ||
Visual C ++ 16.3.0 | 14.23.27820.0 | 9 сентября 2019 г. | ||
Visual C ++ 16.4.0 | 14.24.28127.4 | 3 декабря 2019 г. | ||
Visual C ++ 16.5.0 | 14.25.28508.3 | 16 марта 2020 г. | ||
Visual C ++ 16.6.0 | 14.26.28720.3 | 19 мая 2020 г. | ||
Visual C ++ 16.6.3 | 14.26.28808.1 | 30 июня 2020 г. | ||
Visual C ++ 16.7 | 14.27.29016.0 | 5 августа 2020 г. | ||
Visual C ++ 16.7.5 | 14.27.29112.0 | 29 сентября 2020 г. |