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

En este tema se explica la forma de 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++ generada con /clr tiene una dependencia de msvcm90.dll, que forma parte de la biblioteca en tiempo de ejecución de C. Si se desea que la aplicación se utilice en un entorno de confianza parcial, CLR forzará la existencia de algunas reglas de seguridad de acceso a código en el archivo DLL. Por consiguiente, será necesario quitar esta dependencia porque msvcm90.dll contiene código nativo y no se puede imponer en él una directiva de seguridad de acceso a código.

Si la aplicación no utiliza la funcionalidad de la biblioteca en tiempo de ejecución de C y se desea quitar la dependencia de esta biblioteca del código, es necesario usar la opción del vinculador /NODEFAULTLIB:msvcmrt.lib y establecer un vínculo con ptrustm.lib o ptrustmd.lib. Estas bibliotecas contienen archivos de objeto para la inicialización y desinicialización de una aplicación, clases de excepción utilizadas por el código de inicialización, y código de control de excepciones administradas. El vínculo con una de estas bibliotecas quitará cualquier dependencia de msvcm90.dll.

Nota

El orden de desinicialización de ensamblados puede diferir para las aplicaciones que utilizan las bibliotecas de tipo ptrust. Para las aplicaciones normales, los ensamblados se suelen descargar en orden inverso al de carga, pero este hecho no se puede garantizar. Para las aplicaciones de confianza parcial, los ensamblados se suelen descargar en el mismo orden en que se cargan, pero tampoco se puede garantizar este hecho.

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

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

  2. Agregue una de las bibliotecas de tipo ptrustm a las dependencias de entrada del vinculador. Utilice ptrustm.lib si está generando la aplicación en modo de lanzamiento. En modo de depuración, use ptrustmd.lib. Para obtener información sobre cómo se realiza esta acción utilizando el entorno de desarrollo de Visual Studio o mediante programación, vea archivos .Lib como entrada del vinculador.

Vea también

Referencia

/link (Pasar opciones al vinculador)

Conceptos

Ensamblados mixtos (nativos y administrados)

Inicialización de ensamblados mixtos

Compatibilidad con bibliotecas para ensamblados mixtos

Otros recursos

Seguridad del código nativo y del código de .NET Framework