Aggiungere riferimenti a un progetto Visual C++ gestito

Questo articolo fornisce informazioni su come aggiungere riferimenti a un progetto Visual C++ gestito.

Versione originale del prodotto: Visual C++
Numero KB originale: 310674

Riepilogo

Questo articolo descrive il processo di aggiunta di un riferimento a un altro assembly in un progetto Visual C++. In altri linguaggi, ad esempio Visual C#, è possibile aggiungere un riferimento tramite la finestra di dialogo Aggiungi riferimento . Questa finestra di dialogo non è disponibile per le applicazioni C++ gestite. Esistono diversi suggerimenti che semplificano l'uso dei riferimenti in un'applicazione C++ gestita.

Riferimenti a Microsoft .NET

I riferimenti .NET puntano agli assembly condivisi. Ad esempio, l'assembly System.Windows.Forms.dll è un assembly standard per l'accesso alle classi Windows Forms. Per usare questo assembly in un'applicazione C++ gestita, è sufficiente farvi riferimento con una #using direttiva del preprocessore, come illustrato di seguito:

#using <System.Windows.Forms.dll>

Riferimenti COM

L'uso di un oggetto COM (Component Object Model) in un'applicazione C++ gestita comporta una decisione di progettazione. Un'opzione consiste nell'usare codice COM non gestito all'interno di una classe gestita. Ad esempio, è possibile decidere di usare la soluzione tradizionale #import . Questa può essere una buona opzione per i casi in cui si verificano problemi con l'interoperabilità COM.

La seconda opzione consiste nell'usare assembly di interoperabilità che eseguono il wrapping dell'oggetto COM. Questo è l'unico metodo disponibile per altri linguaggi come C# e Visual Basic .NET. Per creare un assembly di interoperabilità per un oggetto COM, usare lo strumento TLBIMP.exe. Ad esempio, usare la procedura seguente per automatizzare Internet Explorer da un'applicazione gestita:

  1. Aprire la finestra del prompt dei comandi.

  2. Passare alla cartella Sistema Windows .

  3. Digitare il comando seguente:

    tlbimp shdocvw.dll /out:Interop.shdocvw.dll
    
  4. Spostare Interop.shdocvw.dll nella cartella del progetto.

In questo modo viene creato un assembly di interoperabilità per gli oggetti COM in Shdocvw.dll. Il file risultante, Interop.shdocvw.dll, può essere usato con una #using direttiva . Può quindi essere considerato come un componente gestito. Per istruzioni sulla copia automatica di questa libreria a collegamento dinamico (DLL) nella cartella di output, vedere la sezione Uso degli eventi post-compilazione di questo articolo.

Nota

Le variabili di ambiente per Visual C++ devono essere impostate affinché TLBIMP.exe vengano riconosciute. Se non sono impostati, sarà prima necessario eseguire ./VC7/BIN/VCVARS32.bat in Visual Studio .NET o ./VC/BIN/VCVARS32.bat in Visual Studio e Visual C++ Express Edition.

Riferimenti al progetto

I riferimenti ai progetti sono riferimenti ad assembly creati da altri progetti. Anche in questo caso, la #using direttiva viene usata per fare riferimento a questi assembly. Tuttavia, poiché questi assembly non sono condivisi, è necessario adottare misure per assicurarsi che il compilatore possa trovarli. Esistono due metodi per eseguire questa operazione:

  • Copiare l'assembly nella cartella del progetto.
  • Modificare le impostazioni del progetto per cercare l'assembly:
  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto.

  2. Fare clic sulla cartella C/C++ .

    Nota

    In Visual C++ espandere Proprietà di configurazione e quindi C/C++.

  3. Fare clic sulla pagina delle proprietà Generale .

  4. Modificare la proprietà Resolve #using References in modo che punti alla cartella che contiene l'assembly di destinazione.

Uso di eventi post-compilazione

Gli assembly privati devono risiedere nella stessa cartella del file eseguibile che li usa. Quando si aggiunge un riferimento in Visual C#, in Visual Basic .NET o in Visual Basic, viene copiato automaticamente nella cartella di output. In un'applicazione C++ gestita questo passaggio può essere automatizzato tramite l'uso di post-build eventi. Si consideri, ad esempio, uno scenario in cui si dispone di un assembly denominato MYLIB.dll nella cartella del progetto dell'applicazione C++ gestita denominata TestApp. La procedura seguente consente di configurare un post-build evento che copierà questa DLL nella cartella di output del progetto TestApp .

  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto C++ gestito.

  2. Fare clic sulla cartella Eventi di compilazione .

    Nota

    In Visual C++ espandere Proprietà di configurazione e quindi eventi di compilazione.

  3. Fare clic sulla pagina delle proprietà Evento post-compilazione .

  4. Modificare la proprietà Riga di comando con il comando seguente:

    copy $(<ProjectDir>)mylib.dll $(<TargetDir>)  
    

Uso di Visual C++ .NET o Visual C++

Usando Visual C++ .NET o Visual C++, è possibile aggiungere un riferimento tramite la finestra di dialogo Aggiungi riferimento . Per aggiungere un riferimento al progetto, seguire questa procedura:

  1. In Esplora soluzioni selezionare il progetto.

  2. Scegliere Aggiungi riferimenti dal menu Progetto.

    Nota

    In Visual C++ fare clic su Riferimenti dal menu Progetto e quindi su Aggiungi nuovo riferimento.

  3. Nella finestra di dialogo Aggiungi riferimenti fare clic sulla scheda corrispondente alla categoria a cui si vuole aggiungere un riferimento.

    Nota

    In Visual C++ fare clic sulla scheda Sfoglia nella finestra di dialogo Aggiungi riferimenti .

  4. Fare clic su Sfoglia, individuare il componente desiderato nell'unità locale e quindi fare clic su OK. Il componente viene aggiunto al campo Componenti selezionati .

    Nota

    In Visual C++ individuare il componente desiderato nell'unità locale.

  5. Per aggiungere il riferimento selezionato alla scheda corrente, fare clic su Aggiungi.

    Nota

    In Visual C++ fare clic su OK per chiudere la finestra di dialogo e aggiungere il componente nella casella di riepilogo Riferimenti della finestra di dialogo Pagina proprietà del progetto.