Como criar um aplicativo confiável parcialmente removendo a dependência da DLL de biblioteca CRT

Este tópico discute como criar um aplicativo de Common Language Runtime parcialmente confiável usando o Visual C++ removendo a dependência de msvcm90.dll.

Um aplicativo Visual C++ criado com /clr terá uma dependência no msvcm90.dll, que faz parte da Biblioteca C-Runtime. Quando quiser que seu aplicativo seja usado em um ambiente de confiança parcial, o CLR imporá determinadas regras de segurança de acesso ao código na sua DLL. Portanto, será necessário remover essa dependência porque msvcm90.dll contém código nativo e a política de segurança de acesso ao código não pode ser imposta a ela.

Se o aplicativo não usar nenhuma funcionalidade da Biblioteca C-Runtime e você quiser remover a dependência dessa biblioteca do código, você precisará usar a opção do vinculador /NODEFAULTLIB:msvcmrt.lib e vincular com ptrustm.lib ou ptrustmd.lib. Essas bibliotecas contêm arquivos de objeto para inicialização e desinicialização de um aplicativo, classes de exceção usadas pelo código de inicialização e código de tratamento de exceção gerenciada. A vinculação em uma dessas bibliotecas removerá qualquer dependência de msvcm90.dll.

Observação

A ordem de cancelamento de inicialização do assembly pode ser diferente para aplicativos que usam as bibliotecas ptrust. Para aplicativos normais, os assemblies geralmente são descarregados na ordem inversa em que são carregados, mas isso não é garantido. Para aplicativos de confiança parcial, os assemblies geralmente são descarregados na mesma ordem em que são carregados. Isso, também, não é garantido.

Para criar um aplicativo parcialmente confiável misto (/clr)

  1. Para remover a dependência no msvcm90.dll, você precisa especificar ao vinculador para não incluir essa biblioteca usando a opção do vinculador /NODEFAULTLIB:msvcmrt.lib. Para obter informações sobre como fazer isso usando o ambiente de desenvolvimento do Visual Studio ou programaticamente, consulte /NODEFAULTLIB (Ignorar Bibliotecas).

  2. Adicione uma das bibliotecas de ptrustm às dependências de entrada do vinculador. Use ptrustm.lib se você estiver criando seu aplicativo no modo de versão. Para o modo de depuração, use ptrustmd.lib. Para obter informações sobre como fazer isso usando o ambiente de desenvolvimento do Visual Studio ou programaticamente, consulte Arquivos .Lib como entrada do vinculador.

Confira também

Assemblies mistos (nativos e gerenciados)
Inicialização de assemblies mistos
Suporte de biblioteca para assemblies mistos
/link (passar opções para o vinculador)