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
Nell'esempio QStat viene illustrata la creazione di una DLL che esegue il wrapping dell'accesso a un oggetto COM e ne espone le funzionalità ai client .NET Framework mediante C++.
Nota sulla sicurezza: |
|---|
Questo esempio di codice viene fornito solo a scopo dimostrativo e non deve essere utilizzato in applicazioni o siti Web, poiché potrebbe non implementare le tecniche migliori a livello di sicurezza. Microsoft esclude ogni responsabilità per danni diretti o indiretti derivanti dall'utilizzo dell'esempio di codice per scopi diversi da quelli previsti. |
Per ottenere gli esempi e le istruzioni per l'installazione:
In Visual Studio scegliere Esempi dal menu ?.
Per ulteriori informazioni, vedere Individuazione dei file di esempio.
La versione più recente e l'elenco completo degli esempi sono disponibili in linea alla pagina Visual Studio 2008 Samples.
È anche possibile trovare gli esempi sul disco rigido del computer. Per impostazione predefinita, gli esempi e il file Leggimi vengono copiati in una cartella nel percorso \Programmi\Visual Studio 9.0\Samples\. Per le versioni Express di Visual Studio, tutti gli esempi sono disponibili in linea.
Generazione ed esecuzione dell'esempio
Per generare l'esempio
Nell'IDE di Visual Studio, caricare il file di soluzione QStat.sln.
In Esplora soluzioni, fare clic con il pulsante destro del mouse sulla soluzione QStat.
Scegliere Genera soluzione dal menu di scelta rapida.
Per eseguire l’esempio
In Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto netClient.
Scegliere Avvia dal menu Debug.
Dopo l'avvio dei client, sulla console verranno visualizzati alcuni messaggi di notifica delle chiamate alla logica di business.
Nota: |
|---|
Per ulteriori informazioni sull'interazione tra i componenti, eseguire il codice un'istruzione alla volta impostando punti di interruzione o utilizzando il menu Debug per eseguire singole istruzioni o routine del codice di esempio. |
Descrizione del progetto
L'obiettivo di questo esempio è illustrare l'accesso alla logica di business dai client COM e .NET Framework e non l'implementazione di tale logica. Per questo motivo, la logica di business dell'esempio è relativamente semplice. Essa esegue infatti operazioni aritmetiche non complesse (calcolo geometrico, armonico e di media quadratica) e restituisce il risultato al client.
In termini di programmazione, si consiglia di separare la logica di business dalla struttura mediante la quale la logica stessa viene esposta, in questo caso COM. Nell'esempio, tuttavia, si ipotizza che la logica di business sia stata implementata direttamente all'interno dell'oggetto COM che verrà impiegato e che non si possa accedere alla logica di business sottostante se non attraverso l'oggetto COM.
Viene creata una DLL wrapper che utilizza l'oggetto COM tramite #import ed espone una classe .NET Framework che verrà utilizzata dai client .NET Framework. Queste operazioni vengono eseguite definendo la classe C++ nativa nativeMeanCalc, contenente un membro dati puntatore COM intelligente ottenuto tramite #import. Viene anche definita una classe .NET Framework contenente un puntatore alla classe C++ nativa. La classe .NET Framework netMeanCalc contiene un puntatore a un oggetto nativeMeanCalc, con cui viene completato il percorso dell'oggetto COM di destinazione. netMeanCalc costituisce la classe pubblica che verrà utilizzata dai client .NET Framework.
Nell'esempio sono inclusi due progetti client:
nativeClient, un client COM implementato in C++ nativo.
netClient, scritto con la nuova sintassi per C++.
Classi e parole chiave
Nell'esempio vengono illustrate le seguenti parole chiave:
__gc; #using; #import; try; catch; _com_error; Console::WriteLine
Nota sulla sicurezza:
Nota: