Dela via


Ren och verifierbar kod (C++/CLI)

För .NET Programming stöder Visual C++ i Visual Studio 2017 skapandet av blandade sammansättningar med hjälp av kompileringsalternativet /clr (Common Language Runtime Compil). Alternativen /clr:pure och clr:safe är inaktuella i Visual Studio 2015 och stöds inte i Visual Studio 2017. Om koden måste vara säker eller verifierbar rekommenderar vi att du porterar den till C#.

Blandad (/clr)

Blandade sammansättningar (kompilerade med /clr), innehåller både ohanterade och hanterade delar, vilket gör det möjligt för dem att använda .NET-funktioner, men fortfarande innehåller intern kod. På så sätt kan program och komponenter uppdateras för att använda .NET-funktioner utan att hela projektet behöver skrivas om. Att använda Visual C++ för att blanda hanterad och intern kod på det här sättet kallas C++ Interop. Mer information finns i Blandade (interna och hanterade) sammansättningar och intern och .NET-samverkan.

Anrop som görs från hanterade sammansättningar till interna DLL:er via P/Invoke kompileras, men kan misslyckas vid körning beroende på säkerhetsinställningar.

Det finns ett kodningsscenario som går igenom kompilatorn, men det resulterar i en icke-verifierbar samling: att anropa en virtuell funktion genom en objektinstans med hjälp av scope resolution-operatören. Till exempel: MyObj -> A::VirtualFunction();.

Se även