Compartilhar via


Código puro e verificável (C++/CLI)

Para Programação do .NET, o Visual C++ no Visual Studio 2017 dá suporte à criação de assemblies mistos usando a opção do compilador /clr (Common Language Runtime). As opções /clr:pure e /clr:safe foram preteridas no Visual Studio 2015 e incompatíveis com o Visual Studio 2017. Se o código precisar ser seguro ou verificável, recomendamos que você faça a portabilidade dele para C#.

Misto (/clr)

Assemblies mistos (compilados com /clr) contêm partes não gerenciadas e gerenciadas, possibilitando que eles usem recursos do .NET, mas eles ainda contêm código nativo. Isso permite que aplicativos e componentes sejam atualizados para usar recursos do .NET sem exigir que todo o projeto seja reescrito. O uso do Visual C++ para misturar código gerenciado e nativo dessa forma é chamado de Interoperabilidade do C++. Para obter mais informações, confira Assemblies mistos (nativos e gerenciados) e Interoperabilidade nativa e do .NET.

As chamadas feitas de assemblies gerenciados para DLLs nativas por meio de P/Invoke serão compiladas, mas poderão falhar no runtime dependendo das configurações de segurança.

Há um cenário de codificação que passará pelo compilador, mas que resultará em um assembly não verificável: chamar uma função virtual por meio de uma instância de objeto usando o operador de resolução de escopo. Por exemplo: MyObj -> A::VirtualFunction();.

Confira também