Procedura: creare un'applicazione parzialmente attendibile rimuovendo la dipendenza dalla DLL della libreria CRT

Questo argomento illustra come creare un'applicazione Common Language Runtime parzialmente attendibile usando Visual C++ rimuovendo la dipendenza da msvcm90.dll.

Un'applicazione Visual C++ compilata con /clr avrà una dipendenza da msvcm90.dll, che fa parte della libreria C-Runtime. Quando si vuole che l'applicazione venga usata in un ambiente parzialmente attendibile, CLR applichererà determinate regole di sicurezza per l'accesso al codice nella DLL. Pertanto, sarà necessario rimuovere questa dipendenza perché msvcm90.dll contiene codice nativo e i criteri di sicurezza dell'accesso al codice non possono essere applicati.

Se l'applicazione non usa alcuna funzionalità della libreria C-Runtime e si vuole rimuovere la dipendenza da questa libreria dal codice, sarà necessario usare l'opzione del linker /NODEFAULTLIB:msvcmrt.lib e il collegamento con ptrustm.lib o ptrustmd.lib. Queste librerie contengono file oggetto per l'inizializzazione e l'inizializzazione di un'applicazione, classi di eccezioni usate dal codice di inizializzazione e codice di gestione delle eccezioni gestite. Il collegamento in una di queste librerie rimuoverà qualsiasi dipendenza da msvcm90.dll.

Nota

L'ordine di inizializzazione dell'assembly può essere diverso per le applicazioni che usano le librerie ptrust. Per le applicazioni normali, gli assembly vengono in genere scaricati nell'ordine inverso in cui vengono caricati, ma questo non è garantito. Per le applicazioni con attendibilità parziale, gli assembly vengono in genere scaricati nello stesso ordine in cui vengono caricati. Questo, inoltre, non è garantito.

Per creare un'applicazione mista parzialmente attendibile (/clr)

  1. Per rimuovere la dipendenza da msvcm90.dll, è necessario specificare al linker di non includere questa libreria usando l'opzione del linker /NODEFAULTLIB:msvcmrt.lib . Per informazioni su come eseguire questa operazione usando l'ambiente di sviluppo di Visual Studio o a livello di codice, vedere /NODEFAULTLIB (Ignore Libraries).

  2. Aggiungere una delle librerie ptrustm alle dipendenze di input del linker. Usare ptrustm.lib se si compila l'applicazione in modalità di rilascio. Per la modalità di debug, usare ptrustmd.lib. Per informazioni su come eseguire questa operazione usando l'ambiente di sviluppo di Visual Studio o a livello di codice, vedere . File lib come input del linker.

Vedi anche

Assembly misti (nativi e gestiti)
Inizializzazione di assembly misti
Supporto delle librerie per assembly misti
/link (passa opzioni al linker)