Condividi tramite


Procedura dettagliata: utilizzo delle funzionalità /clr:pure

Aggiornamento: novembre 2007

In questa procedura dettagliata viene illustrato l'utilizzo della reflection in un'applicazione MSIL di tipo puro. La soluzione Scribble di Windows Form viene estesa in modo da includere alcune classi native che contengono dati statici, nonché esporre controlli Windows Form utilizzabili dalla finestra di progettazione di Windows Form. La generazione dell'esempio con l'opzione /clr:pure consente di illustrare i problemi potenziali che possono verificarsi con questo scenario. Per ulteriori informazioni, vedere Procedura: migrare a /clr:pure.

Prerequisiti

Esempio ScribbleDotNET: estensione di Scribble con funzionalità CLR

Per generare/eseguire l'applicazione di esempio

  1. Scaricare l'esempio ScribbleDotNET.

  2. Aprire il file della soluzione Scribble.sln nell'ambiente di sviluppo di Visual Studio.

  3. Generare la soluzione utilizzando la configurazione “CLR-Pure Debug” oppure “CLR-Pure Release”.

  4. Aprire il componente StringDialog.h nella modalità progettazione.

  5. Verrà visualizza la finestra di progettazione nella quale sarà presente un'istanza di “ScribbleCustomControl”.

Tecnologie

  • Nuova sintassi C++ per .NET

  • Reflection

  • marshal_as<T> per accedere a tipi nativi da classi gestite.

In questo esempio viene creata una classe non gestita, di cui successivamente viene eseguito il wrapping in una classe del controllo gestito. Quando si esegue la compilazione in un'applicazione MSIL di tipo puro, è possibile eseguire la reflection del file EXE risultante e caricare il controllo gestito da utilizzare in Progettazione Windows Form. Questo comportamento è possibile solo quando la configurazione corrente deve creare un'applicazione MSIL di tipo puro e non in modalità non gestita o mista.

All'interno del controllo, si crea un'istanza di un'istanza di una classe nativa. Le informazioni necessarie sono rappresentate da una stringa nativa. La sintassi marshal_as < T > viene utilizzata per convertire i dati a un tipo di dati gestito è possibile utilizzare in un'applicazione che supporta le librerie CLR. Per ulteriori informazioni sulla libreria del marshalling, vedere Overview of Marshaling in C++.

Vedere anche

Concetti

Language Features for Targeting the CLR

Altre risorse

Procedure dettagliate di Visual C++ 2008