Biblioteca de clases de Microsoft Foundation

Biblioteca orientada a objetos del sistema operativo Windows

Biblioteca de clases de Microsoft Foundation
Desarrollador(es)Microsoft
Lanzamiento inicial1992 ; hace 32 años ( 1992 )
Versión estable
14.22.27821.0 / 24 de julio de 2019 [1]
Escrito enC++
Sistema operativoMicrosoft Windows
LicenciaPropiedad
Sitio webdocs.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 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

ProductoBibliotecaVersiónFecha de lanzamiento
NombreVersión
Microsoft C/C++ 7.0mafxcw.libMFC 1.01992
Microsoft Visual C++ 1.0Visual C++ 1.0mfc200.dllMFC 2.0
Visual C++ 1.5mfc250.dllMFC 2.5
Visual C++ 1.51mfc250.dllMFC 2,51
Visual C++ 1.52cmfc250.dllMFC 2.5 (Última plataforma de desarrollo para Windows 3.x )
Microsoft Visual C++ 2.0Visual C++ 2.0mfc30.dllMFC 3.0
Visual C++ 2.1mfc30.dllMFC 3.1
Visual C++ 2.2mfc30.dllMFC 3.2
Microsoft Visual C++ 4.0Visual C++ 4.0mfc40.dllMFC 4.0 (mfc40.dll incluido con Windows 95 )Agosto de 1995
Visual C++ 4.1mfc40.dllMFC 4.1
Visual C++ 4.2mfc42.dllMFC 4.2 (mfc42.dll incluido con la versión original de Windows 98 )Marzo de 1998
Visual C++ 3.0 integradomfc42.dllMFC 4.2
Microsoft Visual C++ 5.0Visual C++ 5.0mfc42.dllMFC 4.21
Microsoft Visual C++ 6.0Visual C++ 6.0mfc42.dllMFC 6.01998
Visual C++ 4.0 integradomfcce400.dllMFC 6.0
Microsoft Visual C++ .NET 2002Visual C++ .NET 2002 (Visual C++ 7.0)mfc70.dllMFC 7.013 de febrero de 2002
Microsoft Visual C++ .NET 2003Visual C++ .NET 2003 (Visual C++ 7.1)mfc71.dllMFC 7.124 de abril de 2003
Visual C++ .NET 2003 + MS11-025 (KB2465373) [10]MFC 7.10.6119.012 de abril de 2011
Microsoft Visual C++ 2005Visual C++ 2005 (Visual C++ 8.0)mfc80.dll8.0.50727.4210 de abril de 2006
Visual C++ 2005 SP18.0.50727.76227 de agosto de 2007
Visual C++ 2005 SP1 + MS09-035 (KB973544) [11] [12]8.0.50727.405328 de julio de 2009
Visual C++ 2005 SP1 + MS11-025 (KB2467175) [10]8.0.50727.559212 de abril de 2011
Visual C++ 2005 SP1 + MS11-025 (KB2538242) [10] [13]8.0.50727.6195 (incluido en la versión redist 8.0.61000/8.0.61001 [14] )14 de junio de 2011
Visual C++ 2005 SP1 + MS11-025 (KB2643995) [15] [16]8.0.50727.622925-01-2021?
Microsoft Visual C++ 2008Visual C++ 2008 (Visual C++ 9.0)mfc90.dll9.0.21022.819 de noviembre de 2007
Visual C++ 2008 + MS09-035 (KB973551) [11] [12]9.0.21022.21828 de julio de 2009
Visual C++ 2008 con paquete de funciones9.0.3041122 de abril de 2008
Visual C++ 2008 SP19.0.30729.111 de agosto de 2008
Visual C++ 2008 SP1 + MS09-035 (KB973552) [11] [12]9.0.30729.414828 de julio de 2009
Visual C++ 2008 SP1 + MS11-025 (KB2467174) [10]9.0.30729.557012 de abril de 2011
Visual C++ 2008 SP1 + MS11-025 (KB2538243) [10]9.0.30729.6161 (el instalador tiene la versión 9.0.30729.5677)14 de junio de 2011
Microsoft Visual C++ 2010Visual C++ 2010 (Visual C++ 10.0)mfc100.dll10.0.30319.112 de abril de 2010 [17]
Visual C++ 2010 + MS11-025 (KB2467173) [10]10.0.30319.41512 de abril de 2011
Visual C++ 2010 SP110.0.40219.110 de marzo de 2011
Visual C++ 2010 SP1 + MS11-025 (KB2565063) [10]10.0.40219.3259 de agosto de 2011
Microsoft Visual C++ 2012Visual C++ 2012 (Visual C++ 11.0)mfc110.dll11.0.50727.112 de septiembre de 2012
Actualización 1 de Visual C++ 201211.0.51106.126 de noviembre de 2012
Actualización 3 de Visual C++ 201211.0.60610.126 de junio de 2013
Actualización 4 de Visual C++ 201211.0.61030.013 de noviembre de 2013
Microsoft Visual C++ 2013Visual C++ 2013 (Visual C++ 12.0)mfc120.dll12.0.21005.117 de octubre de 2013
Actualización 2 de Visual C++ 201312.0.30501.012 de mayo de 2014
Actualización 5 de Visual C++ 2013 + KB313836712.0.40649.5febrero de 2016? [18] [16]
Actualización 5 de Visual C++ 2013 + KB317956012.0.40660.08 de julio de 2016 [19]
Actualización 5 de Visual C++ 2013 + KB403293812.0.40664.018 de julio de 2017 [20]
Microsoft Visual C++ 2015Visual C++ 2015 (Visual C++ 14.0)mfc140.dll14.0.23026.020 de julio de 2015
Actualización 1 de Visual C++ 201514.0.23506.030 de noviembre de 2015 [21]
Actualización 2 de Visual C++ 201514.0.23918.030 de marzo de 2016 [22]
Actualización 3 de Visual C++ 201514.0.24210.027 de junio de 2016 [23]
Actualización 3 de Visual C++ 201514.0.24212.018 de agosto de 2016
Actualización 3 de Visual C++ 2015 + KB316575614.0.24215.115 de septiembre de 2016 [24]
Actualización 3 de Visual C++ 201514.0.24245.013 de noviembre de 2018
Actualización 3 de Visual C++ 201514.0.24247.213 de junio de 2023
Microsoft Visual C++ 2017Visual C++ 15.0mfc140.dll14.10.25008.07 de marzo de 2017
¿Visual C++ 15.1?14.10.25017.05 de abril de 2017?
Visual C++ 15.214.11.25325.010 de mayo de 2017
Visual C++ 15.414.12.25810.09 de octubre de 2017
Visual C++ 15.614.13.26020.05 de marzo de 2018
Visual C++ 15.714.14.26405.07 de mayo de 2018
¿Visual C++ 15.7.3?14.14.26429.431 de mayo de 2018
Visual C++ 15.814.15.26706.014 de agosto de 2018
Visual C++ 15.914.16.27012.613 de noviembre de 2018
Visual C++ 15.9.514.16.27024.18 de enero de 2019
Visual C++ 15.9.614.16.27026.124 de enero de 2019
Visual C++ 15.9.914.16.27027.112 de marzo de 2019
Visual C++ 15.9.1514.16.27033.013 de agosto de 2019
Visual C++ 15.9.6714.16.27052.08 de octubre de 2024
Microsoft Visual C++ 2019Visual C++ 16.0.0mfc140.dll14.20.27508.12 de abril de 2019?
Visual C++ 16.1.014.21.27702.221 de mayo de 2019
Visual C++ 16.2.014.22.27821.024 de julio de 2019
Visual C++ 16.3.014.23.27820.023 de septiembre de 2019
Visual C++ 16.4.014.24.28127.43 de diciembre de 2019
Visual C++ 16.5.014.25.28508.316 de marzo de 2020
Visual C++ 16.6.014.26.28720.319 de mayo de 2020
Visual C++ 16.6.314.26.28808.130 de junio de 2020
Visual C++ 16.7.014.27.29016.05 de agosto de 2020
Visual C++ 16.7.514.27.29112.029 de septiembre de 2020
Visual C++ 16.7.814.27.29114.0 [nota 1]10 de noviembre de 2020
Visual C++ 16.8.014.28.29325.210 de noviembre de 2020
Visual C++ 16.8.214.28.29334.019 de noviembre de 2020
Visual C++ 16.9.014.28.29910.02 de marzo de 2021
Visual C++ 16.9.214.28.29913.016 de marzo de 2021
Visual C++ 16.9.414.28.29914.013 de abril de 2021
Visual C++ 16.10.014.29.30037.025 de mayo de 2021
Visual C++ 16.10.214.29.30038.015 de junio de 2021
Visual C++ 16.10.414.29.30040.020 de julio de 2021
Visual C++ 16.11.014.29.30133.010 de agosto de 2021
Visual C++ 16.11.414.29.30135.05 de octubre de 2021
Visual C++ 16.11.914.29.30139.011 de enero de 2022
Visual C++ 16.11.3214.29.30153.014 de noviembre de 2023
Visual C++ 16.11.4114.29.30156.08 de octubre de 2024
Microsoft Visual C++ 2022Visual C++ 17.0.0RCmfc140.dll14.30.30704.013 de octubre de 2021
Visual C++ 17.0.514.31.30708.014 de enero de 2022
Visual C++ 17.1.014.31.30818.027 de octubre de 2021
Visual C++ 17.1.014.31.30919.023 de diciembre de 2021
Visual C++ 17.1.014.31.31005.026 de enero de 2022
Visual C++ 17.1.014.31.31103.026 de enero de 2022
Visual C++ 17.2.014.32.31302.017 de marzo de 2022
Visual C++ 17.2.014.32.31326.09 de abril de 2022
Visual C++ 17.2.514.32.31332.01 de julio de 2022
Visual C++ 17.4.014.34.31931.09 de noviembre de 2022
Visual C++ 17.4.514.34.31938.014 de febrero de 2023
Visual C++ 17.6.014.36.32532.016 de mayo de 2023
Visual C++ 17.7.114.38.32919.011 de agosto de 2023
Visual C++ 17.8.014.38.33130.015 de noviembre de 2023
Visual C++ 17.8.614.38.33135.06 de febrero de 2024
Visual C++ 17.9.414.40.33617.119 de marzo de 2024
Visual C++ 17.9.414.40.33810.01 de mayo de 2024
Visual C++ 17.9.514.40.33816.08 de octubre de 2024

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

  • Las últimas descargas compatibles con Visual C++ - Microsoft
  • ¿Dónde puedo descargar los redistribuibles de Visual C++? - Microsoft
  • Referencia de MSDN MFC - Microsoft
  • MFC: Visual Studio 2005 y versiones posteriores - Microsoft
  • Una mirada al interior de la próxima generación de Visual C++ (incluye las principales actualizaciones de MFC 9) - Microsoft
Obtenido de "https://es.wikipedia.org/w/index.php?title=Biblioteca_de_clases_de_Microsoft_Foundation&oldid=1251835437"