stringtranslate.com

Biblioteca de clases de Microsoft Foundation

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 se generalizó su uso. 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 16 bits de Windows como un contenedor C++ orientado a objetos extremadamente fino para la API de Windows. En ese momento, C++ estaba empezando a reemplazar a C para el desarrollo de software de aplicaciones comerciales. En un programa MFC, rara vez se necesitan llamadas directas a la API de Windows . En cambio, los programas crean objetos a partir de clases 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. [2]

Una peculiaridad de MFC es el uso de "Afx" como prefijo para muchas funciones, macros y el nombre de encabezado precompilado estándar "stdafx.h". Durante el desarrollo inicial, lo que se convirtió en MFC se llamó "Application Framework Extensions" y se abrevió como "Afx". El nombre Microsoft Foundation Classes (MFC) se adoptó demasiado tarde en el ciclo de lanzamiento como 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 MFC como una actualización fuera de banda para Visual Studio 2008 y MFC 9. [3] La actualización presenta nuevas construcciones de interfaz de usuario, incluidas las cintas y los widgets de IU asociados , barras de herramientas totalmente personalizables , paneles acoplables que pueden flotar libremente o acoplarse a cualquier lado y pestañas de documentos . [4]

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 . [5] Sin embargo, la edición Community de Visual Studio , presentada en 2014, incluye MFC.

Object Windows Library (OWL), diseñada para su uso con el compilador Turbo C++ de Borland , fue un producto competidor que presentó Borland en la misma época. Finalmente, Borland interrumpió el desarrollo de OWL y licenció la distribución de los encabezados, bibliotecas y DLL de MFC de Microsoft [6] durante un breve período, 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 envuelve partes de la API de Windows en clases C++ , incluida la funcionalidad que les permite utilizar un marco de aplicación predeterminado . Las clases se definen para muchos de los objetos de Windows administrados por handle 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 [7] ), excepciones , identificación de tipos en tiempo de ejecución (RTTI), serialización e instanciación dinámica de clases. Las macros para el manejo de mensajes apuntaban a reducir el consumo de memoria al evitar el uso gratuito de tablas virtuales y también a 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 precedieron 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 envolver las características del lenguaje en lugar de proporcionar implementaciones personalizadas, logrando compatibilidad ascendente.

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 de cinta gráfica y programática como le resulte más conveniente. El asistente de aplicaciones de 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 acoplables. La nueva funcionalidad se proporciona en nuevas clases para que las aplicaciones antiguas sigan ejecutándose. [4] Esta actualización se basa en la BCGControlBar Library Professional Edition de BCGSoft. [8] Microsoft ha impuesto requisitos de licencia adicionales a los usuarios de las cintas. [9] Estos incluyen un requisito de adherirse a las Pautas de diseño de interfaz de usuario de Microsoft y una cláusula anticompetitiva 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 la DLL de MFC .

Versiones

Véase también

Notas

  1. ^ Última versión de la biblioteca compatible oficialmente con Windows XP . [25]

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. ^ "Visual C++ 2008 Feature Pack ya está disponible". Blogs.msdn.com . Consultado el 26 de abril de 2008 .
  4. ^ ab "Recorrido rápido por la nueva funcionalidad de MFC". Blogs.msdn.com . Consultado el 10 de septiembre de 2019 .
  5. ^ "Preguntas frecuentes sobre Visual Studio Express Edition". Microsoft.com. Archivado desde el original el 11 de junio de 2011. Consultado el 6 de enero de 2012 .
  6. ^ "Microsoft compra acciones de Inprise y resuelve disputas". Techweb.com. Archivado desde el original el 17 de octubre de 2007. Consultado el 6 de enero de 2012 .
  7. ^ Williams, Mickey; David Bennett. "Cómo crear sus propios mapas de mensajes". Inform IT.
  8. ^ "Actualización de MFC con tecnología de BCGSoft". Msdn2.microsoft.com . Consultado el 16 de noviembre de 2007 .
  9. ^ "Página de descarga de la versión del paquete de características de Visual C++ 2008". Microsoft.com . Consultado el 16 de mayo de 2008 .
  10. ^ abcdefg «MS11-025: Una vulnerabilidad en la biblioteca Microsoft Foundation Class (MFC) podría permitir la ejecución remota de código: 12 de abril de 2011». Microsoft.com . Consultado el 10 de junio de 2019 .
  11. ^ abc "Boletín de seguridad de Microsoft MS09-035 - Moderado: vulnerabilidades en la biblioteca de plantillas activas de Visual Studio podrían permitir la ejecución remota de código (969706)". Microsoft.com . Consultado el 19 de noviembre de 2012 .
  12. ^ abc «Proteja su equipo de la vulnerabilidad de seguridad de Active Template Library (ATL)». Archivado desde el original el 26 de octubre de 2010. Consultado el 29 de octubre de 2010 .
  13. ^ "Actualización de seguridad de MFC del Service Pack 1 de Microsoft Visual Studio 2005". Microsoft.com . Consultado el 19 de noviembre de 2012 .
  14. ^ "¿Dónde puedo descargar Visual C++ Redistributables?" . Consultado el 10 de junio de 2019 .
  15. ^ "REPARACIÓN: error "HRESULT: 0x80073715" al instalar una aplicación mediante un archivo .msi si el archivo se fusiona con módulos de fusión para la biblioteca de tiempo de ejecución de Visual C++ 2005". Microsoft.com . 25 de enero de 2021.
  16. ^ ab vcredist/source_links/README.md > Archivo de enlaces de origen
  17. ^ "Visual C++ - Exploración de nuevas características de C++ y MFC en Visual Studio 2010". Msdn.microsoft.com . Consultado el 19 de noviembre de 2012 .
  18. ^ "Actualización para Visual C++ 2013 y Visual C++ Redistributable Package". Msdn.microsoft.com . Consultado el 8 de enero de 2017 .
  19. ^ "Actualización para Visual C++ 2013 y Visual C++ Redistributable Package". Msdn.microsoft.com . Consultado el 8 de enero de 2017 .
  20. ^ "Actualización del paquete redistribuible de Visual C++ 2013" . Consultado el 10 de junio de 2019 .
  21. ^ "Visual Studio 2015 Update 1". Msdn.microsoft.com . Consultado el 12 de junio de 2016 .
  22. ^ "Visual Studio 2015 Update 2". Msdn.microsoft.com . Consultado el 12 de junio de 2016 .
  23. ^ "Visual Studio 2015 Update 3". Msdn.microsoft.com . Consultado el 28 de junio de 2016 .
  24. ^ "Microsoft Visual Studio 2015 Update 3 (KB3165756)". Msdn.microsoft.com . Consultado el 28 de agosto de 2016 .
  25. ^ Compatibilidad binaria de C++ entre versiones de Visual Studio

Lectura adicional

Enlaces externos