Dela via


.NET-programmering med C++/CLI

Viktigt!

C++/CLI är en teknik som utformats under de första åren av .NET (2003–2010) och som fortfarande stöds i kompatibilitetssyfte. Det passar bäst för befintliga kodbaser, särskilt de som flyttas fram från .NET Framework till .NET Core, eller för att underhålla stora äldre system som sannolikt inte kommer att utvecklas utanför .NET Framework.

C++/CLI är tillförlitligt och robust, men inget nytt funktionsarbete planeras utöver vad som krävs för att säkerställa fortsatt funktionalitet. Utvecklare bör vara medvetna om att användning av C++/CLI pessimiserar både C++ och .NET-språk, eftersom det begränsas av språkfunktionerna och API:erna som är tillgängliga vid tidpunkten för designen, dvs. före ISO C++11 och .NET Core. C++/CLI har utformats baserat på C++98 och ecma-standarden har inte uppdaterats för att hålla jämna steg med nyare C++-standarder sedan C++11. Vissa funktioner i C++11 har införlivats, men många funktioner från nyare standarder, som C++20 och C++23, har inget direkt stöd i C++/CLI för kompilering till hanterad kod. Mer information finns i C++20 Support kommer till C++/CLI.

För nya projekt rekommenderar vi att du utforskar moderna alternativ från tredje part, https://github.com/dotnet/ClangSharp till exempel eller https://www.swig.org/, som ger mer flexibilitet och bättre anpassning till aktuella språk- och körningsfunktioner.

C++/CLI ersatte Hanterad C++. C++/CLI är en språkspecifikation som skapats av Microsoft och som utökar C++ för att stödja .NET. Det stöds bara i Windows. Det är inte för att skriva WinUI - eller Universal Windows Platform UWP Windows Runtime-appar (WinRT). Det är för att skriva .NET-program och komponenter som körs på .NET. C++/CLI är en brygga mellan inbyggd C++-kod och hanterad kod. Du kan använda befintliga C++-bibliotek i .NET-program och skriva nya .NET-program i C++.

Microsoft tillhandahåller C++/WinRT för att skriva WinUI- och WinRT-appar. Det är en helt vanlig modern C++17-språkprojektion för Windows Runtime-API:er (WinRT). Mer information om hur du använder C++ med Windows Runtime (WinRT) finns i C++/WinRT.

Som standard skapas CLR-projekt med Visual Studio 2015-målet .NET Framework 4.5.2. Du kan rikta in dig på .NET Framework 4.6 när du skapar ett nytt projekt. I dialogrutan Nytt projekt ändrar du målramverket i listrutan längst upp i dialogrutan. Om du vill ändra målramverket för ett befintligt projekt stänger du projektet, redigerar projektfilen (.vcxproj) och ändrar värdet för Target Framework-versionen till 4.6. Ändringarna träder i kraft nästa gång du öppnar projektet.

I Visual Studio 2017 är standardmålet .NET Framework 4.6.1. Versionsväljaren Framework finns längst ned i dialogrutan Nytt projekt .

Installera C++/CLI-stöd i Visual Studio 2017

Själva C++/CLI installeras inte som standard när du installerar en Visual Studio C++-arbetsbelastning. Om du vill installera komponenten när Visual Studio har installerats öppnar du Installationsprogrammet för Visual Studio genom att välja Start-menyn i Windows och söka efter installationsprogrammet för Visual Studio. Välj knappen Ändra bredvid den installerade versionen av Visual Studio. Välj fliken Enskilda komponenter . Rulla ned till avsnittet Kompilatorer, byggverktyg och körningar och välj C++/CLI-stöd. Välj Ändra för att ladda ned nödvändiga filer och uppdatera Visual Studio.

I Visual Studio 2019 är standardmålramverket för .NET Core-projekt 5.0. För .NET Frameworks-projekt är standardvärdet 4.7.2. Versionsväljaren för .NET Framework finns på sidan Konfigurera ditt nya projekt i dialogrutan Skapa ett nytt projekt .

Installera C++/CLI-stöd i Visual Studio 2019

Själva C++/CLI installeras inte som standard när du installerar en Visual Studio C++-arbetsbelastning. Om du vill installera komponenten när Visual Studio har installerats öppnar du Installationsprogrammet för Visual Studio genom att välja Start-menyn i Windows och söka efter installationsprogrammet för Visual Studio. Välj knappen Ändra bredvid den installerade versionen av Visual Studio. Välj fliken Enskilda komponenter . Rulla ned till avsnittet Kompilatorer, byggverktyg och körningar och välj C++/CLI-stöd för v142-byggverktyg (senaste). Välj Ändra för att ladda ned nödvändiga filer och uppdatera Visual Studio.

I Visual Studio 2022 är standardmålramverket för .NET Core-projekt 6.0. För .NET Frameworks-projekt är standardvärdet 4.7.2. Versionsväljaren för .NET Framework finns på sidan Konfigurera ditt nya projekt i dialogrutan Skapa ett nytt projekt .

Installera C++/CLI-stöd i Visual Studio 2022

Själva C++/CLI installeras inte som standard när du installerar en Visual Studio C++-arbetsbelastning. Om du vill installera komponenten när Visual Studio har installerats öppnar du Installationsprogrammet för Visual Studio genom att välja Start-menyn i Windows och söka efter installationsprogrammet för Visual Studio. Välj knappen Ändra bredvid den installerade versionen av Visual Studio. Välj fliken Enskilda komponenter . Rulla ned till avsnittet Kompilatorer, byggverktyg och körningar och välj C++/CLI-stöd för v143-byggverktyg (senaste). Välj Ändra för att ladda ned nödvändiga filer och uppdatera Visual Studio.

I det här avsnittet

C++/CLI-uppgifter
Native och .NET-interoperabilitet
Ren och verifierbar kod (C++/CLI)
Reguljära uttryck (C++/CLI)
Filhantering och I/O (C++/CLI)
Grafikåtgärder (C++/CLI)
Windows-åtgärder (C++/CLI)
Dataåtkomst med hjälp av ADO.NET (C++/CLI)
Samverkan med andra .NET-språk (C++/CLI)
Serialisering (C++/CLI)
Hanterade typer (C++/CLI)
Reflektion (C++/CLI)
Starka namnsammansättningar (sammansättningssignering) (C++/CLI)
Felsökningsklass (C++/CLI)
Referens för STL/CLR-bibliotek
C++-supportbibliotek
Undantag i C++/CLI
Boxning (C++/CLI)

Se även

Native och .NET-interoperabilitet