Articulo de referencia

Biblioteca de clases de Microsoft Foundation

{{cite web|url=https://docs.microsoft.com/en-us/visualstudio/releases/2019/release-notes |title=Visual Studio 2019 Release Notes |publisher=Msdn.microsoft.com |access-date=July ...

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

Microsoft presentó MFC en 1992 y rápidamente se popularizó. Si bien Microsoft ha introducido marcos de desarrollo 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 16 bits de Windows como una capa de abstracción C++ orientada a objetos extremadamente ligera para la API de Windows. En ese momento, C++ apenas comenzaba a reemplazar a C en el desarrollo de software de aplicaciones comerciales. Las llamadas directas a la API de Windows en un programa MFC rara vez son necesarias. En su lugar, los programas crean objetos a partir de clases de Microsoft Foundation Class y llaman a las funciones miembro que pertenecen a esos objetos. Muchas de esas funciones comparten sus nombres con las funciones API correspondientes. [ 2 ]

Una particularidad de MFC es el uso de "Afx" como prefijo para muchas funciones, macros y el nombre del archivo de cabecera precompilado estándar " stdafx.h ". Durante las primeras etapas de desarrollo, lo que se convertiría en MFC se denominaba "Extensiones del marco de aplicaciones" y se abreviaba como "Afx". El nombre Microsoft Foundation Classes (MFC) se adoptó demasiado tarde en el ciclo de lanzamiento como para modificar 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 MFC como una actualización fuera de banda para Visual Studio 2008 y MFC 9. [ 3 ] [ 4 ] [ 5 ] La actualización presenta nuevas construcciones de interfaz de usuario, incluidas las cintas y los widgets de interfaz de usuario asociados, barras de herramientas totalmente personalizables , paneles acoplables que pueden flotar libremente o acoplarse a cualquier lado y pestañas de documento . [ 6 ]

MFC era inicialmente una característica de las versiones comerciales de Visual Studio. Por lo tanto, no está incluida en la versión gratuita Visual C++ Express . [ 7 ] Sin embargo, la edición Community de Visual Studio , lanzada en 2014, sí incluye MFC.

La biblioteca Object Windows Library (OWL), diseñada para usarse con el compilador Turbo C++ de Borland , fue un producto de la competencia lanzado por Borland casi al mismo tiempo. Finalmente, Borland interrumpió el desarrollo de OWL y obtuvo la licencia de distribución de los encabezados, bibliotecas y DLL de MFC de Microsoft [ 8 ] durante un breve período, aunque nunca ofreció soporte totalmente integrado para MFC. Posteriormente, Borland lanzó Visual Component Library para reemplazar el marco de trabajo OWL.

Características

MFC es una biblioteca que encapsula partes de la API de Windows en clases de C++ , [ 9 ] incluyendo funcionalidad que les permite usar un marco de aplicación predeterminado . Se definen clases 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 proporcionaba macros de C++ para el manejo de mensajes de Windows (a través de Message Maps [ 10 ] ), excepciones , información de tipo en tiempo de ejecución (RTTI), serialización e instanciación dinámica de clases. Las macros para el manejo de mensajes tenían como objetivo reducir el consumo de memoria evitando el uso innecesario de tablas virtuales y también proporcionar una estructura más concreta para que diversas herramientas de Visual C++ editaran y manipularan el código sin analizar el lenguaje completo. Las macros de manejo de mensajes reemplazaron el mecanismo de funciones virtuales proporcionado por C++.

Las macros para serialización, excepciones y RTTI precedieron en varios años a la disponibilidad de estas características en Microsoft C++. Las versiones de 32 bits de MFC, para Windows NT 3.1 y sistemas operativos Windows posteriores, utilizaban compiladores que implementaban las características del lenguaje y actualizaban las macros para simplemente encapsular dichas características en lugar de proporcionar implementaciones personalizadas, logrando así la compatibilidad con versiones anteriores.

El editor de recursos de la cinta de MFC permite al desarrollador diseñar la cinta gráficamente en lugar de tener que usar el marcado declarativo basado en XML como la API 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 combinar el desarrollo gráfico y programático de la cinta según le convenga. El asistente de aplicación de MFC también se ha actualizado para admitir las nuevas características, incluida una casilla de verificación para seleccionar si la aplicación usará la cinta o los paneles acoplables. La nueva funcionalidad se proporciona en nuevas clases para que las aplicaciones antiguas sigan funcionando. [ 6 ] Esta actualización se basa en la edición profesional de la biblioteca BCGControlBar de BCGSoft . [ 11 ] Microsoft ha impuesto requisitos de licencia adicionales a los usuarios de las cintas. [ 12 ] Estos incluyen un requisito para cumplir con las Directrices de diseño de la interfaz de usuario de Microsoft y una cláusula anticompetencia que prohíbe el uso de la interfaz de usuario en aplicaciones que compiten con Microsoft Office .

MFC se puede utilizar enlazando una biblioteca estática o agregando la biblioteca de vínculos dinámicos (DLL) de MFC.

Véase también

Referencias

  1. "Notas de la versión de Visual Studio 2019" . Msdn.microsoft.com . Consultado el 24 de julio de 2019 .
  2. Descripción general de Visual C++ Express
  3. "Se ha lanzado el paquete de características de Visual C++ 2008" . Blog de Somasegar . Microsoft. 7 de abril de 2008.
  4. "¡Lanzamiento del paquete de características de Visual C++ 2008!" . Blog del equipo de C++ . Microsoft. 7 de abril de 2008.
  5. "Actualización del paquete de características de Visual C++ 2008" . Blog del equipo de C++ . Microsoft. 22 de abril de 2008.
  6. 1 2 "Recorrido rápido por la nueva funcionalidad de MFC" . Blogs.msdn.com. 9 de noviembre de 2007. Consultado el 10 de septiembre de 2019 .
  7. "Preguntas frecuentes sobre Visual Studio Express Edition" . Microsoft.com. Archivado del original el 11 de junio de 2011. Consultado el 6 de enero de 2012 .
  8. "Microsoft compra una participación en Inprise y resuelve disputas" . Techweb.com. Archivado del original el 17 de octubre de 2007. Consultado el 6 de enero de 2012 .
  9. Bergen, Stuart (octubre de 2024). "Modernización de matrices heredadas: reemplazo de CArray por std::vector" . Overload . Vol. 32, n.° 183. Reino Unido: ACCU . págs. 20–23 . ISSN 1354-3172 .    
  10. Williams, Mickey; David Bennett. "Creando tus propios mapas de mensajes" . Inform IT.
  11. "Actualización de MFC con tecnología de BCGSoft" . Msdn2.microsoft.com. 9 de noviembre de 2007. Consultado el 16 de noviembre de 2007 .
  12. "Página de descarga del paquete de características de Visual C++ 2008" . Microsoft.com . Consultado el 16 de mayo de 2008 .

Lecturas adicionales

  • Jones, Richard M. (2000). Introducción a la programación MFC con Visual C++ . Nueva Jersey: Prentice-Hall . ISBN 978-0-13-016629-6.
  • Kruglinski, David (1997). Dentro de Visual C++ (4  ed.). Prensa de Microsoft . ISBN 9781572315655.
  • Madkour, Tarek (junio de 2007). "Una mirada al interior de la próxima generación de Visual C++" . Revista MSDN . Vol.  22, n.º  6. Microsoft . ISSN 1528-4859 . 
  • Microsoft (1995). Microsoft Visual C++: Programación con MFC (2.ª  ed.). Microsoft Press . ISBN 9781556159213.
  • Murray, WH; Pappas, CH (2000). Programación MFC en C++ con las bibliotecas de plantillas estándar . Nueva Jersey: Prentice–Hall . ISBN 978-0-13-016111-6.
  • Prosise, Jeff (1999). Programación de Windows con MFC (2.ª  ed.). Microsoft Press . ISBN 9781572316959.
  • Shepherd, George (1996). MFC Internals (7.ª  ed.). Addison–Wesley . ISBN 9780201407211.
  • nogal, C.; Robichaux, PE (1997). Usando MFC y ATL . Que. ISBN 978-0-78-970751-2.
  • Las últimas descargas compatibles de Visual C++ - Microsoft
  • ¿Dónde puedo descargar los paquetes redistribuibles de Visual C++? - Microsoft
  • Referencia de MSDN MFC - Microsoft
  • MFC: Visual Studio 2005 y versiones posteriores - Microsoft