stringtranslate.com

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

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

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

История

MFC был представлен в 1992 году вместе с компилятором Microsoft C/C++ 7.0 для использования с 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 и на короткое время лицензировала распространение заголовков MFC, библиотек и DLL у 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] Это обновление создано на основе библиотеки BCGControlBar Library Professional Edition от BCGSoft. [8] Microsoft ввела дополнительные лицензионные требования к пользователям лент. [9] К ним относятся требование соблюдать рекомендации Microsoft по проектированию пользовательского интерфейса, а также положение о борьбе с конкуренцией, запрещающее использование пользовательского интерфейса в приложениях, конкурирующих с Microsoft Office .

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

Версии

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

Примечания

  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. ^ ab «Краткий обзор новых функций 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. ^ abcdefg «MS11-025: Уязвимость в библиотеке Microsoft Foundation Class (MFC) делает возможным удаленное выполнение кода: 12 апреля 2011 г.» Microsoft.com . Проверено 10 июня 2019 г.
  11. ^ abc «Бюллетень по безопасности Microsoft MS09-035 — Средняя степень: уязвимости в библиотеке активных шаблонов Visual Studio могут сделать возможным удаленное выполнение кода (969706)» . Microsoft.com . Проверено 19 ноября 2012 г.
  12. ^ abc «Защитите свой компьютер от уязвимости безопасности библиотеки активных шаблонов (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. ^ 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++». 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. ^ «Обновление 3 для Visual Studio 2015» . Msdn.microsoft.com . Проверено 28 июня 2016 г.
  24. ^ «Microsoft Visual Studio 2015, обновление 3 (KB3165756)» . Msdn.microsoft.com . Проверено 28 августа 2016 г.
  25. ^ Бинарная совместимость C++ между версиями Visual Studio.

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

Внешние ссылки