Compatibilidad con bibliotecas para ensamblados mixtos

Visual C++ admite el uso de la biblioteca estándar de C++, la biblioteca de Common RunTime (CRT), ATL y MFC para aplicaciones compiladas con /clr (Compilación de Common Language Runtime).De este modo, las aplicaciones existentes que utilizan estas bibliotecas también pueden usar las características de .NET Framework.

Esta compatibilidad presenta la nueva DLL y las bibliotecas de importación siguientes:

  • Msvcmrt[d].lib si se compila con /clr.Vínculos de ensamblados mixtos a esta biblioteca de importación.

  • Msvcm90[d].dll y Msvcurt[d].lib si se compila con /clr:pure.La DLL es un ensamblado mixto que proporciona compatibilidad con C Run Time (CRT) administrada y forma parte de un ensamblado administrado instalado en la caché global de ensamblados (GAC).Los ensamblados puros se vinculan a esta biblioteca de importación y terminan enlazados a Msvcm90.dll.

Esta compatibilidad proporciona algunas ventajas relacionadas:

  • La biblioteca estándar de C++ y CRT están disponibles tanto para código mixto como puro.La biblioteca estándar de C++ y CRT proporcionadas no son comprobables; en última instancia, las llamadas se siguen derivando a las mismas biblioteca estándar de C++ y CRT que se utilizan desde el código nativo.

  • Corrección del control de excepciones unificado en imágenes puras y mixtas.

  • Inicialización estática de variables de C++ en imágenes puras y mixtas.

  • Compatibilidad con variables por AppDomain y por proceso en código administrado.

  • Resuelve los problemas de bloqueo del cargador que se aplican a las DLL mixtas en Visual C++ .NET y Visual C++ .NET 2003.

Además, esta compatibilidad tiene las siguientes limitaciones:

  • Sólo el modelo de DLL de CRT es compatible (tanto para código compilado con /clr como con /clr:pure).

  • Si los objetos utilizan las bibliotecas de Visual C++ (ya que todos los objetos de una imagen pura deben ser puros), no se pueden combinar objetos puros y mixtos en una misma imagen.Si lo hace, recibirá errores en tiempo de vínculo.

Es conveniente actualizar Common Language Runtime (CLR) a la versión actual, ya que no se garantiza que funcione con versiones anteriores.El código compilado con estos cambios no se podrá ejecutar en la versión 1.x de CLR.

Vea también

Conceptos

Ensamblados mixtos (nativos y administrados)