Biblioteca de clases de Microsoft Foundation - Microsoft Foundation Class Library

Biblioteca de clases de Microsoft Foundation
Desarrollador (es) Microsoft
Versión inicial 1992 ; Hace 29 años ( 1992 )
Lanzamiento estable
14.22.27821.0 / 24 de julio de 2019
Escrito en C ++
Sistema operativo Microsoft Windows
Licencia Propiedad
Sitio web docs .microsoft .com / en-us / cpp / mfc / mfc-desktop-applications

Microsoft Foundation Class Library (MFC) es una biblioteca orientada a objetos de C ++ para desarrollar aplicaciones de escritorio para Windows .

MFC fue introducido por Microsoft en 1992 y rápidamente ganó un uso generalizado. Si bien Microsoft ha introducido marcos de aplicaciones alternativos desde entonces, MFC sigue siendo ampliamente utilizado.

Historia

MFC se introdujo en 1992 con el compilador C / C ++ 7.0 de Microsoft para su uso con versiones de Windows de 16 bits como un contenedor C ++ orientado a objetos extremadamente delgado para la API de Windows. C ++ recién comenzaba a reemplazar a C para el desarrollo de software de aplicaciones comerciales en ese momento. En un programa MFC, rara vez se necesitan llamadas directas a la API de Windows . En su lugar, los programas crean objetos a partir de clases de Microsoft Foundation Class y llaman a funciones miembro que pertenecen a esos objetos. Muchas de esas funciones comparten sus nombres con las funciones API correspondientes.

Una peculiaridad de MFC es el uso de "Afx" como prefijo para muchas funciones, macros y el nombre de encabezado estándar precompilado "stdafx.h". Durante el desarrollo inicial, lo que se convirtió en MFC se llamó "Extensiones de marco de aplicación" y se abrevió "Afx". El nombre Microsoft Foundation Classes (MFC) se adoptó demasiado tarde en el ciclo de lanzamiento para cambiar estas referencias.

MFC 8.0 se lanzó con Visual Studio 2005 . MFC 9.0 se lanzó con Visual Studio 2008. El 7 de abril de 2008, Microsoft lanzó una actualización de las clases de MFC como una actualización fuera de banda de Visual Studio 2008 y MFC 9. La actualización presenta nuevas construcciones de interfaz de usuario, incluidas las cintas y widgets de interfaz de usuario asociados , barras de herramientas totalmente personalizables , paneles de acoplamiento que pueden flotar libremente o acoplarse a cualquier lado y pestañas de documentos .

MFC fue inicialmente una característica de las versiones comerciales de Visual Studio. Como tal, no está incluido en el software gratuito Visual C ++ Express . La edición de la comunidad de Visual Studio , introducida en 2014, sin embargo, incluye MFC.

Object Windows Library (OWL), diseñada para su uso con el compilador Turbo C ++ de Borland , fue un producto competidor introducido por Borland casi al mismo tiempo. Con el tiempo, Borland interrumpió el desarrollo de OWL y obtuvo la licencia de la distribución de los encabezados, bibliotecas y DLL de MFC de Microsoft durante un breve período de tiempo, aunque nunca ofreció soporte totalmente integrado para MFC. Más tarde, Borland lanzó Visual Component Library para reemplazar el marco OWL.

Características

MFC es una biblioteca que incluye partes de la API de Windows en clases de C ++ , incluida la funcionalidad que les permite usar un marco de aplicación predeterminado . Las clases se definen para muchos de los objetos de Windows administrados por identificadores y también para ventanas predefinidas y controles comunes.

En el momento de su introducción, MFC proporcionó macros C ++ para el manejo de mensajes de Windows (a través de mapas de mensajes), excepciones , identificación de tipo en tiempo de ejecución (RTTI), serialización e instanciación de clases dinámicas. Las macros para el manejo de mensajes tenían como objetivo reducir el consumo de memoria evitando el uso gratuito de tablas virtuales y también para proporcionar una estructura más concreta para varias herramientas proporcionadas por Visual C ++ para editar y manipular código sin analizar el lenguaje completo. Las macros de manejo de mensajes reemplazaron el mecanismo de función virtual proporcionado por C ++.

Las macros para serialización, excepciones y RTTI fueron anteriores a la disponibilidad de estas características en Microsoft C ++ por varios años. Las versiones de 32 bits de MFC, para Windows NT 3.1 y sistemas operativos Windows posteriores, usaban compiladores que implementaban las características del lenguaje y actualizaban las macros para simplemente ajustar las características del idioma en lugar de proporcionar implementaciones personalizadas, obteniendo compatibilidad ascendente.

El editor de recursos de cinta de MFC permite al desarrollador diseñar la cinta de forma gráfica en lugar de tener que utilizar el marcado declarativo basado en XML como la API de RibbonX . Opcionalmente, los componentes de la cinta se pueden programar directamente llamando a un nuevo conjunto de métodos de clase de cinta. El desarrollador puede mezclar el desarrollo de cintas gráficas y programáticas según sea conveniente. El asistente de la aplicación MFC también se ha actualizado para admitir las nuevas funciones, incluida una casilla de verificación para seleccionar si la aplicación utilizará la cinta o los paneles de acoplamiento. La nueva funcionalidad se proporciona en nuevas clases para que las aplicaciones antiguas sigan ejecutándose. Esta actualización se basa en BCGControlBar Library Professional Edition de BCGSoft . Microsoft ha impuesto requisitos de licencia adicionales a los usuarios de las cintas. Estos incluyen el requisito de adherirse a las Pautas de diseño de la interfaz de usuario de Microsoft y una cláusula contra la competencia que prohíbe el uso de la interfaz de usuario en aplicaciones que compiten con Microsoft Office .

MFC se puede utilizar vinculando una biblioteca estática o agregando el archivo DLL de MFC .

Versiones

Producto Biblioteca Versión Fecha de lanzamiento
Nombre Versión
Microsoft C / C ++ 7.0 mafxcw.lib MFC 1.0 1992
Microsoft Visual C ++ 1.0 Visual C ++ 1.0 mfc200.dll 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 (última plataforma de desarrollo para 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 (mfc40.dll incluido con Windows 95 ) Agosto de 1995
Visual C ++ 4.1 mfc40.dll MFC 4.1
Visual C ++ 4.2 mfc42.dll MFC 4.2 (mfc42.dll incluido con la versión original de Windows 98 ) Marzo de 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, una importante actualización de 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 13 de febrero de 2002
Microsoft Visual C ++ .NET 2003 Visual C ++ .NET 2003 (Visual C ++ 7.1) mfc71.dll MFC 7.1 24 de abril de 2003
Visual C ++ .NET 2003 + MS11-025 (KB2465373) MFC 7.10.6119.0 12 de abril de 2011
Microsoft Visual C ++ 2005 Visual C ++ 2005 (Visual C ++ 8.0) mfc80.dll 8.0.50727.42 10 de abril de 2006
Visual C ++ 2005 SP1 8.0.50727.762 27 de agosto de 2007
Visual C ++ 2005 SP1 + MS09-035 (KB973544) 8.0.50727.4053 28 de julio de 2009
Visual C ++ 2005 SP1 + MS11-025 (KB2467175) 8.0.50727.5592 12 de abril de 2011
Visual C ++ 2005 SP1 + MS11-025 (KB2538242) 8.0.50727.6195 (incluido en redist 8.0.61000 / 8.0.61001) 14 de junio de 2011
Microsoft Visual C ++ 2008 Visual C ++ 2008 (Visual C ++ 9.0) mfc90.dll 9.0.21022.8 19 de noviembre de 2007
Visual C ++ 2008 + MS09-035 (KB973551) 9.0.21022.218 28 de julio de 2009
Visual C ++ 2008 con paquete de características 9.0.30411 22 de abril de 2008
Visual C ++ 2008 SP1 9.0.30729.1 11 de agosto de 2008
Visual C ++ 2008 SP1 + MS09-035 (KB973552) 9.0.30729.4148 28 de julio de 2009
Visual C ++ 2008 SP1 + MS11-025 (KB2467174) 9.0.30729.5570 12 de abril de 2011
Visual C ++ 2008 SP1 + MS11-025 (KB2538243) 9.0.30729.6161 (el instalador tiene la versión 9.0.30729.5677) 14 de junio de 2011
Microsoft Visual C ++ 2010 Visual C ++ 2010 (Visual C ++ 10.0) mfc100.dll 10.0.30319.1 12 de abril de 2010
Visual C ++ 2010 + MS11-025 (KB2467173) 10.0.30319.415 12 de abril de 2011
Visual C ++ 2010 SP1 10.0.40219.1 10 de marzo de 2011
Visual C ++ 2010 SP1 + MS11-025 (KB2565063) 10.0.40219.325 9 de agosto de 2011
Microsoft Visual C ++ 2012 Visual C ++ 2012 (Visual C ++ 11.0) mfc110.dll 11.0.50727.1 12 de septiembre de 2012
Actualización 1 de Visual C ++ 2012 11.0.51106.1 26 de noviembre de 2012
Actualización 3 de Visual C ++ 2012 11.0.60610.1 26 de junio de 2013
Actualización 4 de Visual C ++ 2012 11.0.61030.0 13 de noviembre de 2013
Microsoft Visual C ++ 2013 Visual C ++ 2013 (Visual C ++ 12.0) mfc120.dll 12.0.21005.1 17 de octubre de 2013
Visual C ++ 2013 Actualización 2 12.0.30501.0 12 de mayo de 2014
Visual C ++ 2013 Actualización 5 + KB3138367 12.0.40649.5 Febrero de 2016?
Visual C ++ 2013 Actualización 5 + KB3179560 12.0.40660.0 8 de julio de 2016
Visual C ++ 2013 Actualización 5 + KB4032938 12.0.40664.0 18 de julio de 2017
Microsoft Visual C ++ 2015 Visual C ++ 2015 (Visual C ++ 14.0) mfc140.dll 14.0.23026.0 20 de julio de 2015
Visual C ++ 2015 Actualización 1 14.0.23506.0 30 de noviembre de 2015
Actualización 2 de Visual C ++ 2015 14.0.23918.0 30 de marzo de 2016
Visual C ++ 2015 Actualización 3 14.0.24210.0 27 de junio de 2016
Visual C ++ 2015 Actualización 3 14.0.24212.0 18 de agosto de 2016
Visual C ++ 2015 Actualización 3 + KB3165756 14.0.24215.1 15 de septiembre de 2016
Microsoft Visual C ++ 2017 Visual C ++ 15.0 mfc140.dll 14.10.25008.0 7 de marzo de 2017
Visual C ++ 15.1? 14.10.25017.0 5 de abril de 2017?
Visual C ++ 15.2 14.11.25325.0 10 de mayo de 2017
Visual C ++ 15.4 14.12.25810.0 9 de octubre de 2017
Visual C ++ 15.6 14.13.26020.0 5 de marzo de 2018
Visual C ++ 15.7 14.14.26405.0 7 de mayo de 2018
Visual C ++ 15.7.3? 14.14.26429.4 31 de mayo de 2018
Visual C ++ 15.8 14.15.26706.0 14 de agosto de 2018
Visual C ++ 15.9 14.16.27012.6 13 de noviembre de 2018
Visual C ++ 15.9.5 14.16.27024.1 8 de enero de 2019
Visual C ++ 15.9.6 14.16.27026.1 24 de enero de 2019
Visual C ++ 15.9.9 14.16.27027.1 12 de marzo de 2019
Visual C ++ 15.9.15 14.16.27033.0 13 de agosto de 2019
Microsoft Visual C ++ 2019 Visual C ++ 16.0.0 mfc140.dll 14.20.27508.1 2 de abril de 2019?
Visual C ++ 16.1.0 14.21.27702.2 21 de mayo de 2019
Visual C ++ 16.2.0 14.22.27821.0 24 de julio de 2019
Visual C ++ 16.3.0 14.23.27820.0 23 de septiembre de 2019
Visual C ++ 16.4.0 14.24.28127.4 3 de diciembre de 2019
Visual C ++ 16.5.0 14.25.28508.3 16 de marzo de 2020
Visual C ++ 16.6.0 14.26.28720.3 19 de mayo de 2020
Visual C ++ 16.6.3 14.26.28808.1 30 de junio de 2020
Visual C ++ 16.7.0 14.27.29016.0 5 de agosto de 2020
Visual C ++ 16.7.5 14.27.29112.0 29 de septiembre de 2020
Visual C ++ 16.8.0 14.28.29325.2 10 de noviembre de 2020
Visual C ++ 16.8.2 14.28.29334.0 19 de noviembre de 2020
Visual C ++ 16.9.0 14.28.29910.0 2 de marzo de 2021
Visual C ++ 16.9.2 14.28.29913.0 16 de marzo de 2021
Visual C ++ 16.9.4 14.28.29914.0 13 de abril de 2021
Visual C ++ 16.10.0 14.29.30037.0 25 de mayo de 2021
Visual C ++ 16.10.2 14.29.30038.0 15 de junio de 2021
Visual C ++ 16.10.4 14.29.30040.0 20 de julio de 2021
Visual C ++ 16.11.0 14.29.30133.0 10 de agosto de 2021
Visual C ++ 16.11.4 14.29.30135.0 5 de octubre de 2021
Microsoft Visual C ++ 2022 Visual C ++ 17.0.0RC mfc140.dll 14.30.30704.0 13 de octubre de 2021

Ver también

Referencias

Otras lecturas

enlaces externos