Microsoft Foundation Classes
Пакет Microsoft Foundation Classes (MFC) — библиотека на языке C++, разработанная Microsoft и призванная облегчить разработку GUI-приложений для Microsoft Windows путем использования богатого набора библиотечных классов.
Принцип действия
Библиотека MFC, как и ее основной конкурент, Borland VCL, облегчает работу с GUI путем создания каркаса приложения — «скелетной» программы, автоматически создаваемой по заданному макету интерфейса и полностью берущей на себя рутинные действия по его обслуживанию (отработка оконных событий, пересылка данных между внутренними буферами элементов и переменными программы и т.п.). Программисту после генерации каркаса приложения необходимо только вписать код в места, где требуются специальные действия. Каркас должен иметь вполне определенную структуру, поэтому для его генерации и изменения в Visual C++ предусмотрены мастера.
Кроме того, MFC предоставляет объектно-ориентированный слой оберток (англ. wrappers) над множеством функций Windows API, делающий несколько более удобной работу с ними. Этот слой представляет множество встроенных в систему объектов (окна, виджеты, файлы и т. п.) в виде классов и опять же берет на себя рутинные действия вроде закрытия дескрипторов и выделения/освобождения памяти.
Добавление кода в каркас приложения
Добавление кода приложения к каркасу реализовано двумя способами. Первый использует механизм наследования: основные программные структуры каркаса представлены в виде классов, наследуемых от библиотечных. В этих классах предусмотрено множество виртуальных функций, вызываемых в определенные моменты работы программы. Путем доопределения (в большинстве случаев необходимо вызвать функцию базового класса) этих функций программист может добавлять выполнение в эти моменты своего кода.
Второй способ используется для добавления обработчиков оконных событий. Мастер создает внутри каркасов классов, связанных с окнами, специальные массивы — карты (оконных) сообщений (англ. message map), содержащие пары «ИД сообщения — указатель на обработчик». При добавлении/удалении обработчика мастер вносит изменения в соответствующую карту сообщений.
История
Первая версия MFC была выпущена вместе с седьмой версией 16-разрядного компилятора языка C/C++ компании Microsoft в 1992 году. Для тех, кто занимался разработкой приложений с использованием API-функций, пакет MFC обещал весьма значительное повышение производительности процесса программирования.
Одной из примечательных особенностей MFC является префикс «Afx», используемый в именах многих функций, макросов и названии стандартного заголовочного файла «stdafx.h». На ранней стадии разработки, то, что впоследствии стало называться MFC, имело название «Application Framework Extensions» и аббревиатуру «Afx». Решение изменить название на Microsoft Foundation Classes (MFC) было принято слишком поздно, чтобы менять упоминания Afx в коде.
Object Windows Library (OWL), разработанная компанией Borland для работы с собственным компилятором C++, была конкурирующим продуктом, представленным в тот же период. В конце концов Borland прекратила разработку OWL и приобрела краткосрочную лицензию на использование библиотек для работы c MFC, но так и не предложила полной поддержки MFC в своих продуктах. Позднее Borland выпустила VCL в качестве замены OWL.
Упор компании Microsoft на MFC был ослаблен в пользу Microsoft .NET Framework. Однако, несмотря на это, MFC по-прежнему остается популярной среди разработчиков.
Версии
| Версия продукта | Версия MFC | Год выхода |
|---|---|---|
| Microsoft C/C++ 7.0 | MFC 1.0 | 1992 |
| Visual C++ 1.0 | MFC 2.0 (введена архитектура документ-представление) | |
| Visual C++ 1.5 | MFC 2.5 (реализована поддержка технологий ODBC и drag-and-drop) | |
| Visual C++ 1.52c | MFC 2.5 (последняя платформа разработки для MS Windows 3.x) | |
| Visual C++ 2.0 | MFC 3.0 (появилась возможность реализации многозадачности и поддержка Unicode) | |
| Visual C++ 2.1 | MFC 3.1 | |
| Visual C++ 2.2 | MFC 3.2 | |
| Visual C++ 4.0 | MFC 4.0 (mfc40.dll включена в состав Windows 95) | август 1995 |
| Visual C++ 4.1 | MFC 4.1 | |
| Visual C++ 4.2 | MFC 4.2 (mfc42.dll включена в первоначальный выпуск Windows 98) | март 1998 |
| eMbedded Visual C++ 3.0 | MFC 4.2 (mfc42.dll) | |
| Visual C++ 5.0 | MFC 4.21 (mfc42.dll), значительное обновление MFC 4.2. | |
| Visual C++ 6.0 | MFC 6.0 (mfc42.dll) | 1998 |
| eMbedded Visual C++ 4.0 | ||
| Visual C++ .NET 2002 (Visual C++ 7.0) | MFC 7.0 (mfc70.dll), .NET 1.0 | февраль 2002 |
| Visual C++ .NET 2003 (Visual C++ 7.1) | MFC 7.1 (mfc71.dll), .NET 1.1 | апрель 2003 |
| Visual C++ 20051 (Visual C++ 8.0) | MFC 8.0 (mfc80.dll), .NET 2.0 | октябрь 2005 |
| Visual C++ 20081 (Visual C++ 9.0) | MFC 9.0.21022 (mfc90.dll), .NET 3.5 | ноябрь 2007 |
| Visual C++ 2008 with Feature Pack | MFC 9.0.30411 (mfc90.dll) | апрель 2008 |
| Visual C++ 2008 SP1 | MFC 9.0.30729 (mfc90.dll) | август 2008 |
| Visual C++ 2010 | MFC 10.x(?), .NET 4.0 | около 2010 |
- 1 Библиотека MFC не входит в Visual Studio редакции Express.
См. также
- Microsoft Windows Template Library (WTL) — облегчённая альтернатива библиотеке MFC
Инструментарии виджетов |
|||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
уровневые |
Macintosh Toolbox/Carbon · Windows API · Intrinsics · Intuition · Xlib | ||||||||||||||||||||
уровневые |
| ||||||||||||||||||||
cs:Microsoft Foundation Class Library de:Microsoft Foundation Classes en:Microsoft Foundation Class Library es:Microsoft Foundation Classes fa:کتابخانه کلاس بنیاد مایکروسافت fr:Microsoft Foundation Class Library he:Microsoft Foundation Classes id:Microsoft Foundation Classes it:Microsoft Foundation Classes ja:Microsoft Foundation Class ko:마이크로소프트 파운데이션 클래스 라이브러리 nl:Microsoft Foundation Classes no:Microsoft Foundation Classes pl:MFC pt:Microsoft Foundation Classes ro:Microsoft Foundation Classes uk:Microsoft Foundation Classes zh:MFC
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....