Clases de la Fundación Microsoft

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 29 de diciembre de 2020; las comprobaciones requieren 2 ediciones .

El paquete Microsoft Foundation Classes (MFC) es una biblioteca de C++ desarrollada por Microsoft y diseñada para facilitar el desarrollo de aplicaciones GUI para Microsoft Windows mediante el uso de un amplio conjunto de clases de biblioteca.

Cómo funciona

La biblioteca MFC, al igual que su principal competidor, Borland VCL , facilita el trabajo con la GUI mediante la creación de un marco de aplicación  : un programa "esqueleto" que se crea automáticamente de acuerdo con un diseño de interfaz determinado y se hace cargo por completo de las acciones de rutina para su mantenimiento (procesamiento de eventos de ventana, transferencia de datos entre búferes de elementos internos y variables de programa, etc.). Después de generar el marco de la aplicación, el programador solo necesita ingresar el código en los lugares donde se requieren acciones especiales. El marco debe tener una estructura bien definida, por lo que Visual C++ proporciona asistentes para generarlo y modificarlo.

Además, MFC proporciona una capa de contenedores orientada a objetos ( envoltorios en inglés ) sobre muchas de las funciones de la API de Windows , lo que hace que trabajar con ellos sea un poco más conveniente. Esta capa representa una gran cantidad de objetos integrados en el sistema (ventanas, widgets , archivos, etc.) en forma de clases y, nuevamente, se ocupa de acciones rutinarias como cerrar descriptores y asignar/liberar memoria.  

Adición de código al marco de la aplicación

Agregar código de aplicación al marco se implementa de dos maneras. El primero utiliza el mecanismo de herencia : las principales estructuras de programa del marco se presentan en forma de clases heredadas de las de biblioteca. Estas clases proporcionan muchas funciones virtuales llamadas en ciertos puntos del programa. Al redefinir (en la mayoría de los casos es necesario llamar a una función de la clase base) estas funciones, el programador puede agregar ejecución en estos puntos en su código.

El segundo método se usa para agregar controladores de eventos de ventana. El asistente crea matrices especiales dentro de los marcos de las clases asociadas con las ventanas: mapas de mensajes (ventana) (mapa de mensajes ing . )  , que contienen pares de "ID de mensaje: puntero a controlador". Al agregar/eliminar un controlador, el asistente realiza cambios en el mapa de mensajes correspondiente.

Historia

La primera versión de MFC se lanzó con la versión 7 del compilador C/C++ de 16 bits de Microsoft en 1992. Para quienes estaban desarrollando aplicaciones usando funciones API , el paquete MFC prometía un aumento muy significativo en la productividad del proceso de programación.

Una característica notable de MFC es el prefijo "Afx" que se usa en los nombres de muchas funciones, macros y el nombre del archivo de encabezado estándar "stdafx.h". En una etapa temprana de desarrollo, lo que luego se conoció como MFC se denominó "Extensiones del marco de aplicación" y se abrevia como "Afx". La decisión de cambiar el nombre a Microsoft Foundation Classes (MFC) se tomó demasiado tarde para cambiar las referencias a Afx en el código.

Object Windows Library (OWL), desarrollado por Borland para ejecutar su propio compilador de C++ , fue un producto de la competencia introducido durante el mismo período. Borland finalmente detuvo el desarrollo de OWL y adquirió una licencia a corto plazo para usar las bibliotecas MFC, pero nunca ofreció soporte completo de MFC en sus productos. Borland luego lanzó VCL como reemplazo de OWL.

El enfoque de Microsoft en MFC se ha relajado a favor de Microsoft .NET Framework . Sin embargo, a pesar de esto, MFC sigue siendo popular entre los desarrolladores.

En abril de 2008, Microsoft lanzó, después de años de inactividad, una importante actualización de MFC llamada MFC Feature Pack. Esta actualización se ofreció para su instalación como complemento de Visual Studio 2008. Básicamente, se trataba de clases MFC adicionales, cuyos derechos se adquirieron de la empresa rusa BCGSoft [1] . MFC incluyó soporte para la nueva interfaz Ribbon y varias otras mejoras relacionadas con controles de interfaz mejorados. Desde el lanzamiento del Service Pack de Visual Studio 2008, estas clases se han convertido en una parte integral de MFC.

Versiones

version del producto versión MFC fecha de lanzamiento
Microsoft C/C++ 7.0 MFC 1.0 1992
Visual C++ 1.0 MFC 2.0 ( arquitectura de vista de documento introducida )
Visual C++ 1.5 MFC 2.5 (soporte implementado para ODBC y tecnologías de arrastrar y soltar )
Visual C++ 1.52c MFC 2.5 (última plataforma de desarrollo para MS Windows 3.x)
Visual C++ 2.0 MFC 3.0 (multitarea agregada y compatibilidad con Unicode )
Visual C++ 2.1 MFC 3.1
Visual C++ 2.2 MFC 3.2
Visual C++ 4.0 MFC 4.0 (mfc40.dll incluido con Windows 95) agosto de 1995
Visual C++ 4.1 MFC 4.1
Visual C++ 4.2 MFC 4.2 (mfc42.dll incluido en la versión inicial de Windows 98) marzo de 1998
Visual C++ 3.0 incorporado MFC 4.2 (mfc42.dll)
Visual C++ 5.0 MFC 4.21 (mfc42.dll), una actualización importante de MFC 4.2.
Visual C++ 6.0 MFC 6.0 (mfc42.dll) 1998
Embedded Visual C++ 4.0 MFC 6.0 (mfcce400.dll)
Visual C++ .NET 2002 (Visual C++ 7.0) MFC 7.0 (mfc70.dll), .NET 1.0 febrero de 2002
Visual C++ .NET 2003 (Visual C++ 7.1) MFC 7.1 (mfc71.dll), .NET 1.1 abril de 2003
Visual C++ 2005 [2] (Visual C++ 8.0) MFC 8.0 (mfc80.dll), .NET 2.0 octubre de 2005
Visual C++ 2008 [2] (Visual C++ 9.0) MFC 9.0.21022 (mfc90.dll), .NET 3.5 noviembre de 2007
Visual C++ 2008 [2] con paquete de características MFC 9.0.30411 (mfc90.dll) abril de 2008
Visual C++ 2008 [2] SP1 MFC 9.0.30729 (mfc90.dll) agosto de 2008
Actualización de seguridad de Visual C++ 2008 [2] (KB971092) MFC 9.0.30729.4148 (mfc90.dll) julio de 2009
Visual C++ 2010 MFC 10.0.30319.1 (mfc100.dll), .NET 4.0 abril de 2010
Visual C++ 2010 SP1 MFC 10.0.40219.1 (mfc100.dll), .NET 4.0 marzo de 2011
Visual C++ 2010 + MS11-025 MFC 10.0.30319.415 (mfc100.dll), .NET 4.0 abril de 2011
Visual C++ 2012 (Visual C++ 11.0) MFC 11.0.50727.1 (mfc110.dll), .NET 4.5 26 de julio de 2012
Actualización 1 de Visual C++ 2012 (Visual C++ 11.0) MFC 11.0.51106.1 (mfc110.dll), .NET 4.5 5 de noviembre de 2012
Actualización 3 de Visual C++ 2012 (Visual C++ 11.0) MFC 11.0.60610.1 (mfc110.dll), .NET 4.5 26 de julio de 2012
Visual C++ 2013 (Visual C++ 12.0) MFC 12.0.21005.1 (mfc120.dll), .NET 4.5.1 5 de octubre de 2013
Actualización 2 de Visual C++ 2013 (Visual C++ 12.0) MFC 12.0.30501.0 (mfc120.dll), .NET 4.5.1 30 de diciembre de 2014
Visual C++ 2015 (Visual C++ 14.0) MFC 14.0.23026.0 (mfc140.dll), .NET 4.6 20 de julio de 2015
Actualización 1 de Visual C++ 2015 (Visual C++ 14.0) MFC 14.0.23506.0 (mfc140.dll), .NET 4.6.1 30 de noviembre de 2015
Actualización 2 de Visual C++ 2015 (Visual C++ 14.0) MFC 14.0.23918.0 (mfc140.dll) 30 de marzo de 2016
Actualización 3 de Visual C++ 2015 (Visual C++ 14.0) MFC 14.0.24210.0 (mfc140.dll) 27 de junio de 2016
Visual C++ 2015 Actualización 3 + KB3165756 MFC 14.0.24212.0 (mfc140.dll) 2 de agosto de 2016
Visual C++ 2017 (Visual C++ 15.0) MFC 14.10.25008.0 (mfc140.dll), .NET 4.6.2 7 de marzo de 2017

Notas

  1. BCGSoft: Acerca de nosotros . Consultado el 20 de abril de 2011. Archivado desde el original el 25 de mayo de 2011.
  2. 1 2 3 4 5 La biblioteca MFC no está incluida en Visual Studio Express Edition.

Véase también