Megosztás a következőn keresztül:


.NET-programozás C++/CLI használatával

Fontos

A C++/CLI a .NET (2003–2010) első éveinek során tervezett technológia, és kompatibilitási célokra továbbra is támogatott. A legjobban a meglévő kódbázisokhoz alkalmas, különösen a .NET-keretrendszerből a .NET Core-ba történő továbbításhoz, vagy olyan nagy örökölt rendszerek fenntartásához, amelyek valószínűleg nem fejlődnek túl a .NET-keretrendszeren.

Bár a C++/CLI megbízható és robusztus, a folyamatos működés biztosításához szükséges funkciókon túl nem terveznek új funkciókat. A fejlesztőknek tisztában kell lenniük azzal, hogy a C++/CLI használata pesszimizálja a C++ és a .NET nyelveket is, mivel ezt a tervezéskor elérhető nyelvi funkciók és API-k korlátozzák, vagyis az ISO C++11 és a .NET Core előtt. A C++/CLI a C++98-as verzióra lett tervezve, és az ECMA szabványa nem frissült, hogy lépést tartson az újabb C++ szabványokkal a C++11 óta. Bár a C++11 egyes funkcióit beépítették, a legújabb szabványok, például a C++20 és a C+++23 számos funkciója nem támogatja a C++/CLI-t a felügyelt kódok fordításához. További információ: C++20 A C++/CLI támogatása.

Új projektek esetén javasoljuk, hogy vizsgálja meg a modern külső alternatívákat, például https://github.com/dotnet/ClangSharp vagy https://www.swig.org/, amelyek nagyobb rugalmasságot és jobb igazodást biztosítanak a jelenlegi nyelvhez és futtatókörnyezeti képességekhez.

A C++/CLI felváltotta a Felügyelt C++-t. A C++/CLI a Microsoft által létrehozott nyelvi specifikáció, amely kibővíti a C++-t a .NET támogatásához. Csak Windows rendszeren támogatott. Nem WinUI - vagy Univerzális Windows Platform UWP Windows-futtatókörnyezeti (WinRT-) alkalmazások írására használható. A .NET-en futó .NET-alkalmazások és összetevők írására használható. A C++/CLI egy híd a natív C++ kód és a felügyelt kód között. Lehetővé teszi, hogy meglévő C++ kódtárakat használjon a .NET-alkalmazásokban, és új .NET-alkalmazásokat írjon a C++-ban.

A Microsoft C++/WinRT-t biztosít WinUI- és WinRT-alkalmazások írásához. Ez egy teljesen standard modern C++17 nyelvi kivetítés Windows Runtime (WinRT) API-khoz. További információ a C++ windowsos futtatókörnyezettel (WinRT) való használatáról: C++/WinRT.

Alapértelmezés szerint a Visual Studio 2015 cél .NET-keretrendszer 4.5.2-vel létrehozott CLR-projektek. Új projekt létrehozásakor megcélzhatja a .NET Framework 4.6-ot. Az Új projekt párbeszédpanelen módosítsa a cél keretrendszert a párbeszédpanel felső részén található legördülő menüben. Egy meglévő projekt célkeretének módosításához zárja be a projektet, szerkessze a projektfájlt (.vcxproj), és módosítsa a cél keretrendszer verziójának értékét 4.6-ra. A módosítások a projekt legközelebbi megnyitásakor lépnek érvénybe.

A Visual Studio 2017-ben az alapértelmezett cél .NET-keretrendszer 4.6.1. A Keretrendszer verzióválasztója az Új projekt párbeszédpanel alján található.

A C++/CLI támogatás telepítése a Visual Studio 2017-ben

A C++/CLI alapértelmezés szerint nincs telepítve Visual Studio C++ számítási feladatok telepítésekor. Ha a Visual Studio telepítése után szeretné telepíteni az összetevőt, nyissa meg a Visual Studio Installert a Windows Start menüjének kiválasztásával, és keresse meg a Visual Studio telepítőjét. Válassza a Visual Studio telepített verziója melletti Módosítás gombot. Válassza az Egyes összetevők lapot. Görgessen le a Fordítók, az Eszközök és a Futtatókörnyezetek szakaszhoz, és válassza a C++/CLI-támogatás lehetőséget. Válassza a Módosítás lehetőséget a szükséges fájlok letöltéséhez és a Visual Studio frissítéséhez.

A Visual Studio 2019-ben a .NET Core-projektek alapértelmezett célkerete az 5.0. A .NET-keretrendszerek projektjei esetében az alapértelmezett érték a 4.7.2. A .NET-keretrendszer verzióválasztója az Új projekt létrehozása párbeszédpanel új projektlapjának Konfigurálása lapján található.

A C++/CLI támogatás telepítése a Visual Studio 2019-ben

A C++/CLI alapértelmezés szerint nincs telepítve Visual Studio C++ számítási feladatok telepítésekor. Ha a Visual Studio telepítése után szeretné telepíteni az összetevőt, nyissa meg a Visual Studio Installert a Windows Start menüjének kiválasztásával, és keresse meg a Visual Studio telepítőjét. Válassza a Visual Studio telepített verziója melletti Módosítás gombot. Válassza az Egyes összetevők lapot. Görgessen le a Fordítók, a Build tools és a Runtimes szakaszhoz, és válassza a C++/CLI-támogatást a v142 buildelési eszközökhöz (legújabb). Válassza a Módosítás lehetőséget a szükséges fájlok letöltéséhez és a Visual Studio frissítéséhez.

A Visual Studio 2022-ben a .NET Core-projektek alapértelmezett célkerete a 6.0. A .NET-keretrendszerek projektjei esetében az alapértelmezett érték a 4.7.2. A .NET-keretrendszer verzióválasztója az Új projekt létrehozása párbeszédpanel új projektlapjának Konfigurálása lapján található.

A C++/CLI támogatás telepítése a Visual Studio 2022-ben

A C++/CLI alapértelmezés szerint nincs telepítve Visual Studio C++ számítási feladatok telepítésekor. Ha a Visual Studio telepítése után szeretné telepíteni az összetevőt, nyissa meg a Visual Studio Installert a Windows Start menüjének kiválasztásával, és keresse meg a Visual Studio telepítőjét. Válassza a Visual Studio telepített verziója melletti Módosítás gombot. Válassza az Egyes összetevők lapot. Görgessen le a fordítók, a buildeszközök és a futtatókörnyezetek szakaszhoz, és válassza a C++/CLI-támogatást a v143 buildelési eszközökhöz (legújabb). Válassza a Módosítás lehetőséget a szükséges fájlok letöltéséhez és a Visual Studio frissítéséhez.

Ebben a szakaszban

C++/CLI-feladatok
Natív és .NET-együttműködés
Tiszta és ellenőrizhető kód (C++/CLI)
Reguláris kifejezések (C++/CLI)
Fájlkezelés és I/O (C++/CLI)
Grafikus műveletek (C++/CLI)
Windows-műveletek (C++/CLI)
Adathozzáférés ADO.NET használatával (C++/CLI)
Együttműködés más .NET-nyelvekkel (C++/CLI)
Szerializálás (C++/CLI)
Felügyelt típusok (C++/CLI)
Reflekció (C++/CLI)
Erős névszerelvények (szerelvény-aláírás) (C++/CLI)
Hibakeresési osztály (C++/CLI)
STL/CLR-kódtár referenciája
C++ támogatási kódtár
Kivételek a C++/CLI-ben
Boxing (C++/CLI)

Lásd még

Natív és .NET-együttműködés