Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
In questa pagina viene fornito il collegamento alla guida relativa all'interoperabilità tramite Visual C++. Per visualizzare altre categorie di attività comuni trattate nella Guida, vedere Procedure relative a Visual C++.
Interoperabilità nativa/CLR
Confronto tra le modalità mista, pura e verificabile
Vengono confrontate le funzionalità tra le tre diverse modalità di compilazione /clr.Procedura: eseguire la migrazione a /clr
Vengono illustrate le problematiche che sorgono durante la compilazione di codice nativo con /clr e durante la conversione di un progetto in gestito.Procedura: compilare codice MFC e ATL con /clr
Viene illustrato come compilare programmi MFC e ATL esistenti per Common Language Runtime.Assembly misti (nativi e gestiti)
Viene illustrato il modo in cui gli sviluppatori possono modificare le applicazioni utilizzando funzionalità gestite e non gestite.Considerazioni sulle prestazioni per l'interoperabilità (C++)
Vengono forniti alcuni suggerimenti per la riduzione degli effetti delle transizioni di interoperabilità tra codice gestito e codice non gestito sulle prestazioni in fase di esecuzione.How to: Declare public and private on Native Classes
Viene illustrato come fare riferimento a un tipo nativo da un tipo gestito.How to: Pass a Delegate^ to a Native Function Expecting a Function Pointer
Viene illustrato come, da un componente gestito, è possibile chiamare una funzione nativa con i parametri di puntatore a funzione in cui la funzione nativa può chiamare la funzione membro del delegato del componente gestito.Procedura: accedere ai caratteri in System::String
Viene illustrato come accedere ai caratteri di un oggetto String per migliorare le prestazioni delle chiamate a funzioni non gestite che accettano stringhe wchar_t*.Procedura: aggiungere DLL native alla Global Assembly Cache
Viene descritto come inserire una DLL nativa (non COM) nella Global Assembly Cache.Procedura: eseguire la conversione tra System::Guid e _GUID
Viene illustrato come eseguire la conversione tra un oggetto Guid e un oggetto _GUID.Procedura: convertire una stringa char * in una matrice System::Byte
Viene illustrato il modo più efficace per convertire una stringa char * in una matrice Byte, ovvero l'utilizzo della classe Marshal.Procedura: convertire stringhe standard in System::String
Viene illustrato come convertire una stringa standard della libreria C++ (<string>) in un oggetto String.Procedura: convertire System::String in stringhe standard
Viene illustrato come convertire un oggetto String in una stringa standard della libreria C++ (<string>).Procedura: convertire System::String in wchar_t* o char*
Viene descritto come utilizzare PtrToStringChars in Vcclr.h per convertire String in un oggetto wchar_t * o char * nativo.Procedura: dichiarare handle in tipi nativi
Viene illustrato come creare un oggetto gcroot nello stack nativo.Procedura: determinare se un'immagine è nativa o CLR
Viene illustrato come verificare a livello di codice se un'immagine è stata generata per Common Language Runtime.Procedura: mantenere i riferimenti agli oggetti in una funzione nativa
Viene descritto come utilizzare gcroot.h, che contiene GCHandle, per mantenere un riferimento agli oggetti CLR nella memoria non gestita.Procedura: mantenere riferimenti al tipo di valore nel tipo nativo
Viene descritto come utilizzare gcroot nel tipo boxed per contenere un riferimento a un tipo di valore in un tipo nativo.Procedura: ottenere un puntatore a una matrice di byte
Viene descritto come ottenere un puntatore al blocco di matrice in una matrice Byte recuperando l'indirizzo del primo elemento e assegnandolo a un puntatore.Procedura: utilizzare un tipo nativo in una compilazione /clr
Viene illustrato come definire un tipo nativo in una compilazione /clr e qualsiasi utilizzo di tale tipo nativo dall'assembly.Procedura: eseguire il wrapping di una classe nativa affinché possa essere utilizzata in C#
Viene illustrato come eseguire il wrapping di una classe C++ nativa in modo che possa essere utilizzata da codice creato in C# o altri linguaggi .NET.
Interoperabilità C++
Procedura: effettuare il marshalling di stringhe ANSI utilizzando l'interoperabilità C++
Viene illustrato come utilizzare l'interoperabilità C++ per eseguire il marshalling di stringhe ANSI tra codice nativo e gestito.Procedura: effettuare il marshalling di stringhe Unicode utilizzando l'interoperabilità C++
Viene illustrato come utilizzare l'interoperabilità C++ per eseguire il marshalling di stringhe Unicode tra codice nativo e gestito.Procedura: effettuare il marshalling di stringhe COM utilizzando l'interoperabilità C++
Viene illustrato come utilizzare l'interoperabilità C++ per eseguire il marshalling di stringhe COM tra codice nativo e gestito.Procedura: effettuare il marshalling di strutture utilizzando l'interoperabilità C++
Viene illustrato come utilizzare l'interoperabilità C++ per eseguire il marshalling di struct tra codice nativo e gestito.Procedura: effettuare il marshalling di matrici utilizzando l'interoperabilità C++
Viene illustrato come utilizzare l'interoperabilità C++ per eseguire il marshalling di matrici tra codice nativo e gestito.Procedura: effettuare il marshalling di callback e delegati utilizzando l'interoperabilità C++
Viene illustrato come utilizzare l'interoperabilità C++ per eseguire il marshalling di callback e delegati tra codice nativo e gestito.Procedura: effettuare il marshalling di puntatori incorporati utilizzando l'interoperabilità C++
Viene illustrato come utilizzare l'interoperabilità C++ per eseguire il marshalling di puntatori incorporati tra codice nativo e gestito.Procedura: specificare un parametro out
Viene illustrato come specificare che un parametro di funzione è un parametro out e come chiamare tale funzione da un programma C#.
Interoperabilità COM
Utilizzo di server COM nativi da .NET
Vengono illustrate le opzioni disponibili per l'utilizzo di componenti COM esistenti da applicazioni .NET e vengono descritti i vantaggi e gli svantaggi di ogni approccio.Procedura: utilizzare server COM nativi con TLBIMP
Viene illustrato come utilizzare gli oggetti COM da codice gestito utilizzando lo strumento Utilità di importazione della libreria dei tipi (Tlbimp.exe).Procedura: utilizzare server COM nativi con CRCWs
Viene illustrato come utilizzare gli oggetti COM da codice gestito utilizzando Runtime Callable Wrapper personalizzati.Esposizione di componenti .NET Framework a COM
Vengono forniti diversi suggerimenti per la scrittura di codice gestito che interagisca con client COM.
P/Invoke
Procedura: effettuare il marshalling di stringhe utilizzando PInvoke
Viene illustrato come chiamare utilizzando il tipo di stringa CLR System.String funzioni native che accettano stringhe di tipo C, tramite la funzionalità per il richiamo piattaforma (P/Invoke).Procedura: chiamare DLL native da codice gestito tramite PInvoke
Viene illustrato come chiamare da codice gestito le funzioni implementate in DLL non gestite tramite la funzionalità per il richiamo piattaforma (P/Invoke).Procedura: effettuare il marshalling di strutture tramite PInvoke
Viene illustrato come chiamare da codice gestito funzioni native che accettano struct di tipo C tramite la funzionalità per il richiamo piattaforma (P/Invoke).Procedura: effettuare il marshalling di matrici utilizzando PInvoke
Viene illustrato come chiamare da codice gestito funzioni native che accettano matrici di tipo C tramite la funzionalità per il richiamo piattaforma (P/Invoke).Procedura: effettuare il marshalling di puntatori a funzione utilizzando PInvoke
Viene illustrato come utilizzare delegati gestiti anziché puntatori a funzione in caso di interoperabilità con funzioni non gestite tramite le funzionalità per il richiamo piattaforma (P/Invoke).Procedura: effettuare il marshalling di puntatori incorporati utilizzando PInvoke
Viene illustrato come eseguire il marshalling di puntatori incorporati tramite le funzionalità per il richiamo piattaforma (P/Invoke).Procedura: modificare una classe di riferimenti in una funzione nativa
Viene illustrato come passare una classe di riferimenti con una matrice CLR a una funzione nativa e quindi modificare la classe utilizzando i servizi PInvoke.Procedura: analizzare le stringhe mediante espressioni regolari
Viene descritto come ottenere un puntatore al blocco di matrice in una matrice Byte recuperando l'indirizzo del primo elemento e assegnandolo a un puntatore.
Libreria di supporto per C++
- Procedura: estendere la libreria del marshalling
Viene illustrato come estendere la libreria del marshalling per fornire più conversioni tra tipi di dati.
Utilizzo di Windows Form in MFC
Utilizzo di un controllo utente Windows Form in MFC
Viene illustrato come utilizzare le classi di supporto Windows Form di MFC per inserire controlli Windows Form nelle applicazioni MFC sotto forma di controlli ActiveX in finestre di dialogo o visualizzazioni MFC.Differenze tra la programmazione con Windows Form e quella con MFC
Vengono fornite informazioni sulle differenze di programmazione tra Windows Form e MFC.Hosting di un controllo utente Windows Form come finestra di dialogo MFC
Viene illustrato come inserire un controllo Windows Form come finestra di dialogo MFC tramite la classe CWinFormsDialog.Procedura: creare il controllo utente e inserirlo nella visualizzazione MDI
Viene illustrato come creare un controllo utente .NET Framework, modificare il controllo utente in una libreria di classi di controlli (in modo specifico un progetto Libreria di controlli Windows) e quindi come compilare il progetto in un assembly.Procedura: aggiungere il routing dei comandi al controllo Windows Form
Viene illustrato come utilizzare CWinFormsView per inviare comandi e aggiornare i messaggi dell'interfaccia utente dei comandi al controllo utente per consentire la gestione dei comandi MFC.Procedura: chiamare proprietà e metodi del controllo Windows Form
Viene illustrato il motivo per cui è consigliabile aggiungere un membro del tipo di controllo utente e inizializzarlo in IView::OnInitialUpdate.Hosting di un controllo utente Windows Form come visualizzazione MFC
Viene illustrato come eseguire l'hosting di un controllo utente Windows Form come visualizzazione MFC.Procedura: creare il controllo utente e inserirlo in una finestra di dialogo
Viene illustrato come aggiungere un controllo utente a un nuovo progetto MFC basato su finestre di dialogo.Procedura: eseguire associazioni dati DDX/DDV con Windows Form
Viene illustrato come associare una stringa C++ nativa a un controllo utente .NET.Procedura: elaborare eventi di Windows Form da classi C++ native
Viene illustrato come attivare classi C++ native in modo da ricevere callback da eventi gestiti generati da controlli Windows Form o da altri form in formato mappa macro MFC. L'elaborazione di eventi in visualizzazioni e finestre di dialogo è simile alla stessa operazione effettuata sui controlli.Hosting di un controllo utente Windows Form in una finestra di dialogo MFC
Viene illustrato come eseguire l'hosting di un controllo utente Windows Form come finestra di dialogo MFC.Procedura: eseguire associazioni dati DDX/DDV con Windows Form
Viene illustrato come associare una stringa C++ nativa a un controllo utente .NET.