Codice puro e verificabile (C++/CLI)

Per la programmazione .NET, Visual C++ in Visual Studio 2017 supporta la creazione di assembly misti usando l'opzione del compilatore /clr (compilazione Common Language Runtime). Le opzioni /clr:pure e clr:safe sono deprecate in Visual Studio 2015 e non supportate in Visual Studio 2017. Se il codice deve essere sicuro o verificabile, è consigliabile convertirlo in C#.

Misto (/clr)

Gli assembly misti (compilati con /clr), contengono sia parti non gestite che gestite, consentendo loro di usare funzionalità .NET, ma contengono ancora codice nativo. In questo modo, le applicazioni e i componenti possono essere aggiornati per usare le funzionalità .NET senza richiedere la riscrizione dell'intero progetto. L'uso di Visual C++ per combinare codice gestito e nativo in questo modo è denominato Interoperabilità C++. Per altre informazioni, vedere Assembly misti (nativi e gestiti) e Interoperabilità nativa e .NET.

Le chiamate effettuate da assembly gestiti a DLL native tramite P/Invoke verranno compilate, ma potrebbero non riuscire in fase di esecuzione a seconda delle impostazioni di sicurezza.

Esiste uno scenario di codifica che passerà il compilatore, ma che comporterà un assembly non verificabile: la chiamata di una funzione virtuale tramite un'istanza dell'oggetto usando l'operatore di risoluzione dell'ambito. Ad esempio: MyObj -> A::VirtualFunction();.

Vedi anche