Código puro y comprobable (C++/CLI)
Para la programación de .NET, Visual C++ en Visual Studio 2017 admite la creación de ensamblados mixtos mediante la opción del compilador /clr (compilación de Common Language Runtime). Las opciones /clr:pure y /clr:safe están en desuso en Visual Studio 2015 y no se admiten en Visual Studio 2017. Si el código debe ser seguro o comprobable, se recomienda que lo migre a C#.
Mixta (/clr)
Los ensamblados mixtos (compilados con /clr), contienen partes administradas y no administradas, lo que les permite utilizar las características .NET, pero siguen conteniendo código nativo. Esto permite actualizar aplicaciones y componentes para utilizar las características de .NET sin tener que volver a escribir el proyecto completo. El uso de Visual C++ para mezclar código administrado y nativo de este modo se denomina interoperabilidad de C++. Para obtener más información, vea Ensamblados mixtos (nativos y administrados) e Interoperabilidad nativa y de .NET.
Las llamadas realizadas desde ensamblados administrados a archivos DLL nativos a través de P/Invoke se compilarán, pero puede que produzcan errores en tiempo de ejecución según la configuración de seguridad que se use.
Existe un escenario de codificación que cumplirá los requisitos del compilador, pero que dará como resultado un ensamblado no comprobable: llamar a una función virtual a través de una instancia de objeto mediante un operador de resolución de ámbito. Por ejemplo: MyObj -> A::VirtualFunction();
.