Compartir vía


Cómo: Crear una aplicación de confianza parcial quitando la dependencia de la DLL de la biblioteca CRT

En este tema se explica cómo crear una aplicación de Common Language Runtime de confianza parcial mediante Visual C++ quitando la dependencia de msvcm90.dll.

Una aplicación de Visual C++ compilada con /clr tendrá una dependencia de msvcm90.dll, que forma parte de la biblioteca en tiempo de ejecución de C. Cuando quiera que la aplicación se use en un entorno de confianza parcial, CLR aplicará determinadas reglas de seguridad de acceso del código en el archivo DLL. Por lo tanto, será necesario quitar esta dependencia porque msvcm90.dll contiene código nativo y no se puede aplicar la directiva de seguridad de acceso del código.

Si la aplicación no usa ninguna funcionalidad de la biblioteca en tiempo de ejecución de C y desea quitar la dependencia de esta biblioteca del código, tendrá que usar el enlazador /NODEFAULTLIB:msvcmrt.lib y establecer vínculos mediante ptrustm.lib o ptrustmd.lib. Estas bibliotecas contienen archivos objeto para la inicialización y la no inicialización de una aplicación, las clases de excepción utilizadas por el código de inicialización y el código de control de excepciones administradas. La vinculación en una de estas bibliotecas quitará cualquier dependencia de msvcm90.dll.

Nota:

El orden de la no inicialización del ensamblado puede diferir para las aplicaciones que usan las bibliotecas ptrust. En el caso de las aplicaciones normales, los ensamblados se suelen descargar en el orden inverso en el que se cargan, pero esto no está garantizado. En el caso de las aplicaciones de confianza parcial, los ensamblados se suelen descargar en el mismo orden en que se cargan. Esto tampoco está garantizado.

Para crear una aplicación mixta de confianza parcial (/clr)

  1. Para quitar la dependencia de msvcm90.dll, debe especificar que el enlazador no incluya esta biblioteca mediante la opción del enlazador /NODEFAULTLIB:msvcmrt.lib. Para obtener información sobre cómo hacerlo mediante el entorno de desarrollo de Visual Studio o mediante programación, vea /NODEFAULTLIB (Omitir bibliotecas).

  2. Agregue una de las bibliotecas ptrustm a las dependencias de entrada del enlazador. Use ptrustm.lib si va a compilar la aplicación en modo de versión. Para el modo de depuración, use ptrustmd.lib. Para obtener información sobre cómo hacerlo mediante el entorno de desarrollo de Visual Studio o mediante programación, vea Archivos .Lib como entrada del enlazador.

Consulte también

Ensamblados mixtos (nativos y administrados)
Inicialización de ensamblados mixtos
Compatibilidad con bibliotecas para ensamblados mixtos
/link (Pasar opciones al vinculador)