Partilhar via


Como: Criar um aplicativo parcialmente confiável removendo a dependência na DLL da biblioteca CRT

Este tópico discute como criar um aplicativo 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 de msvcm90.dll, que faz parte da biblioteca C-Runtime. Quando você 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 em sua DLL. Portanto, será necessário remover essa dependência porque msvcm90.dll contém código nativo e a diretiva de segurança de acesso ao código não pode ser imposta a ele.

Se seu aplicativo não usa nenhuma funcionalidade da C-Runtime Library e você gostaria de remover a dependência dessa biblioteca do seu código, você terá que usar a opção de 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 gerenciado. A vinculação em uma dessas bibliotecas removerá qualquer dependência de msvcm90.dll.

Observação

A ordem de desinicialização do assembly pode ser diferente para aplicativos que usam as bibliotecas ptrust. Para aplicações normais, os componentes geralmente são descarregados na ordem inversa à que são carregados, mas isso não é garantido. Para aplicações de confiança limitada, os conjuntos geralmente são descarregados na mesma ordem em que são carregados. Isso, também, não é garantido.

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

  1. Para remover a dependência de msvcm90.dll, você deve especificar ao vinculador para não incluir essa biblioteca usando a opção de 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 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, utilize ptrustmd.lib. Para obter informações sobre como fazer isto usando o ambiente de desenvolvimento do Visual Studio ou programaticamente, consulte .Arquivos lib como entrada para o vinculador.

Ver também

Montagens mistas (nativas e gerenciadas)
Inicialização de assemblies mistos
Suporte de biblioteca para montagens mistas
/link (Opções de passagem para o vinculador)