Condividi tramite


Programmazione .NET con C++/CLI

Importante

C++/CLI è una tecnologia progettata nei primi anni di .NET (2003-2010) e rimane supportata a scopo di compatibilità. È particolarmente adatto per le codebase esistenti, in particolare quelle che vengono inoltrate da .NET Framework a .NET Core o per la gestione di sistemi legacy di grandi dimensioni che probabilmente si evolvono oltre .NET Framework.

Anche se C++/CLI è affidabile e affidabile, non è previsto alcun lavoro sulle nuove funzionalità oltre a ciò che è necessario per garantire funzionalità continue. Gli sviluppatori devono tenere presente che l'uso di C++/CLI pessimizza i linguaggi C++ e .NET, poiché è vincolato dalle funzionalità e dalle API del linguaggio disponibili al momento della progettazione, ovvero prima di ISO C++11 e .NET Core. C++/CLI è stato progettato in base a C++98 e lo standard ECMA non è stato aggiornato per mantenere il passo con gli standard C++ più recenti a partire da C++11. Sebbene alcune funzionalità di C++11 siano state incorporate, molte funzionalità degli standard più recenti, ad esempio C++20 e C++23, non hanno supporto diretto in C++/CLI per la compilazione in codice gestito. Per altre informazioni, vedere C++20 Support Comes to C++/CLI (Supporto per C++/CLI).

Per i nuovi progetti, è consigliabile esplorare alternative moderne di terze parti, ad https://github.com/dotnet/ClangSharp esempio o https://www.swig.org/, che offrono maggiore flessibilità e un migliore allineamento con le funzionalità correnti del linguaggio e del runtime.

C++/CLI ha soppiantato Managed C++. C++/CLI è una specifica del linguaggio creata da Microsoft che estende C++ per supportare .NET. È supportato solo in Windows. Non è per scrivere app WinUI o UWP della piattaforma Windows Runtime (WinRT). È per la scrittura di applicazioni e componenti .NET eseguiti in .NET. C++/CLI è un ponte tra codice C++ nativo e codice gestito. Consente di usare librerie C++ esistenti nelle applicazioni .NET e di scrivere nuove applicazioni .NET in C++.

Microsoft fornisce C++/WinRT per la scrittura di app WinUI e WinRT. Si tratta di una proiezione del linguaggio C++17 completamente standard per le API Windows Runtime (WinRT). Per altre informazioni sull'uso di C++ con Windows Runtime (WinRT), vedere C++/WinRT.

Per impostazione predefinita, i progetti CLR creati con 2015 sono destinati a.NET Framework 4.5.2. È possibile usare .NET Framework 4.6 quando si crea un nuovo progetto. Nella finestra di dialogo Nuovo progetto modificare il framework di destinazione nell'elenco a discesa nella parte superiore della finestra di dialogo. Per modificare il framework di destinazione per un progetto esistente, chiudere il progetto, modificare il file di progetto (.vcxproj) e modificare il valore di Versione framework di destinazione in 4.6. Le modifiche diventano effettive alla successiva apertura del progetto.

In Visual Studio 2017, la destinazione predefinita di .NET Framework è 4.6.1. Il selettore versione framework si trova nella parte inferiore della finestra di dialogo Nuovo progetto .

Installare il supporto di C++/CLI in Visual Studio 2017

C++/CLI non è installato per impostazione predefinita quando si installa un carico di lavoro di Visual Studio C++. Per installare il componente dopo l'installazione di Visual Studio, aprire il Programma di installazione di Visual Studio selezionando il menu Start di Windows e cercando il programma di installazione di Visual Studio. Scegliere il pulsante Modifica accanto alla versione installata di Visual Studio. Selezionare la scheda Singoli componenti . Scorrere verso il basso fino alla sezione Compilatori, strumenti di compilazione e runtime e selezionare Supporto C++/CLI. Selezionare Modifica per scaricare i file necessari e aggiornare Visual Studio.

In Visual Studio 2019 il framework di destinazione predefinito per i progetti .NET Core è 5.0. Per i progetti .NET Framework, il valore predefinito è 4.7.2. Il selettore di versione di .NET Framework si trova nella pagina Configura il nuovo progetto della finestra di dialogo Crea un nuovo progetto .

Installare il supporto di C++/CLI in Visual Studio 2019

C++/CLI non è installato per impostazione predefinita quando si installa un carico di lavoro di Visual Studio C++. Per installare il componente dopo l'installazione di Visual Studio, aprire il Programma di installazione di Visual Studio selezionando il menu Start di Windows e cercando il programma di installazione di Visual Studio. Scegliere il pulsante Modifica accanto alla versione installata di Visual Studio. Selezionare la scheda Singoli componenti. Scorrere verso il basso fino alla sezione Compilatori, strumenti di compilazione e runtime e selezionare Supporto C++/CLI per gli strumenti di compilazione v142 (versione più recente). Selezionare Modifica per scaricare i file necessari e aggiornare Visual Studio.

In Visual Studio 2022 il framework di destinazione predefinito per i progetti .NET Core è 6.0. Per i progetti .NET Framework, il valore predefinito è 4.7.2. Il selettore di versione di .NET Framework si trova nella pagina Configura il nuovo progetto della finestra di dialogo Crea un nuovo progetto .

Installare il supporto di C++/CLI in Visual Studio 2022

C++/CLI non è installato per impostazione predefinita quando si installa un carico di lavoro di Visual Studio C++. Per installare il componente dopo l'installazione di Visual Studio, aprire il Programma di installazione di Visual Studio selezionando il menu Start di Windows e cercando il programma di installazione di Visual Studio. Scegliere il pulsante Modifica accanto alla versione installata di Visual Studio. Selezionare la scheda Singoli componenti. Scorrere verso il basso fino alla sezione Compilatori, strumenti di compilazione e runtime e selezionare Supporto C++/CLI per gli strumenti di compilazione v143 (versione più recente). Selezionare Modifica per scaricare i file necessari e aggiornare Visual Studio.

In questa sezione

Attività C++/CLI
Interoperabilità nativa e .NET
Codice puro e verificabile (C++/CLI)
Espressioni regolari (C++/CLI)
Gestione dei file e I/O (C++/CLI)
Operazioni grafiche (C++/CLI)
Operazioni di Windows (C++/CLI)
Accesso ai dati tramite ADO.NET (C++/CLI)
Interoperabilità con altri linguaggi .NET (C++/CLI)
Serializzazione (C++/CLI)
Tipi gestiti (C++/CLI)
Reflection (C++/CLI)
Assembly con nome sicuro (firma di assembly) (C++/CLI)
Classe Debug (C++/CLI)
Informazioni di riferimento sulla libreria STL/CLR
Libreria di supporto C++
Eccezioni in C++/CLI
Boxing (C++/CLI)

Vedi anche

Interoperabilità nativa e .NET