Hinzufügen von Verweisen auf ein verwaltetes Visual C++-Projekt

Dieser Artikel enthält Informationen zum Hinzufügen von Verweisen auf ein verwaltetes Visual C++-Projekt.

Ursprüngliche Produktversion: Visual C++
Ursprüngliche KB-Nummer: 310674

Zusammenfassung

In diesem Artikel wird das Hinzufügen eines Verweises auf eine andere Assembly in einem Visual C++-Projekt beschrieben. In anderen Sprachen, z. B. Visual C#, können Sie einen Verweis über das Dialogfeld Verweis hinzufügen hinzufügen. Dieses Dialogfeld ist für verwaltete C++-Anwendungen nicht verfügbar. Es gibt mehrere Tipps, die die Verwendung von Verweisen in einer verwalteten C++-Anwendung vereinfachen.

Microsoft .NET-Verweise

.NET-Verweise verweisen auf freigegebene Assemblys. Beispielsweise ist die Assembly System.Windows.Forms.dll eine Standardassembly für den Zugriff auf die Windows Forms Klassen. Um diese Assembly in einer verwalteten C++-Anwendung verwenden zu können, müssen Sie einfach mit einer #using Präprozessordirektive darauf verweisen, wie hier gezeigt:

#using <System.Windows.Forms.dll>

COM-Verweise

Die Verwendung eines COM-Objekts (Component Object Model) in einer verwalteten C++-Anwendung erfordert eine Entwurfsentscheidung. Eine Möglichkeit besteht darin, nicht verwalteten COM-Code innerhalb einer verwalteten Klasse zu verwenden. Beispielsweise können Sie sich für die verwendung der herkömmlichen #import Lösung entscheiden. Dies kann eine gute Option für Fälle sein, in denen Probleme bei der Verwendung von COM-Interop auftreten.

Die zweite Option besteht darin, Interopassemblys zu verwenden, die das COM-Objekt umschließen. Dies ist die einzige Methode, die für andere Sprachen wie C# und Visual Basic .NET verfügbar ist. Verwenden Sie das Tool TLBIMP.exe, um eine Interopassembly für ein COM-Objekt zu erstellen. Führen Sie beispielsweise die folgenden Schritte aus, um internet-Explorer aus einer verwalteten Anwendung zu automatisieren:

  1. Öffnen Sie eine Eingabeaufforderung.

  2. Navigieren Sie zum Windows-Systemordner .

  3. Geben Sie den folgenden Befehl ein:

    tlbimp shdocvw.dll /out:Interop.shdocvw.dll
    
  4. Verschieben Sie Interop.shdocvw.dll in Ihren Projektordner.

Dadurch wird eine Interopassembly für die COM-Objekte in Shdocvw.dllerstellt. Die resultierende Datei Interop.shdocvw.dllkann mit einer #using -Anweisung verwendet werden. Sie kann dann als verwaltete Komponente behandelt werden. Anweisungen zum automatischen Kopieren dieser Dynamic Link Library (DLL) in den Ausgabeordner finden Sie im Abschnitt Verwenden von Postbuildereignissen dieses Artikels.

Hinweis

Die Umgebungsvariablen für Visual C++ müssen festgelegt werden, damit TLBIMP.exe erkannt werden können. Wenn sie nicht festgelegt sind, müssen Sie zuerst in Visual Studio .NET oder ./VC/BIN/VCVARS32.bat in Visual Studio und Visual C++ Express Edition ausführen./VC7/BIN/VCVARS32.bat.

Projektverweise

Projektverweise sind Verweise auf Assemblys, die von anderen Projekten erstellt wurden. Auch hier wird die #using -Anweisung verwendet, um auf diese Assemblys zu verweisen. Da diese Assemblys jedoch nicht freigegeben sind, müssen Sie Maßnahmen ergreifen, um sicherzustellen, dass der Compiler sie finden kann. Hierfür gibt es zwei Methoden:

  • Kopieren Sie die Assembly in den Projektordner.
  • Ändern Sie die Projekteinstellungen, um nach der Assembly zu suchen:
  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts.

  2. Klicken Sie auf den Ordner C/C++ .

    Hinweis

    Erweitern Sie in Visual C++ konfigurationseigenschaften, und erweitern Sie dann C/C++.

  3. Klicken Sie auf die Eigenschaftenseite Allgemein .

  4. Ändern Sie die Eigenschaft Resolve #using References so, dass sie auf den Ordner verweist, der die Zielassembly enthält.

Verwenden von Postbuildereignissen

Private Assemblys müssen sich im selben Ordner wie die ausführbare Datei befinden, die sie verwendet. Wenn Sie einen Verweis in Visual C#, in Visual Basic .NET oder in Visual Basic hinzufügen, wird er automatisch in den Ausgabeordner kopiert. In einer verwalteten C++-Anwendung kann dieser Schritt durch die Verwendung von post-build Ereignissen automatisiert werden. Betrachten Sie beispielsweise ein Szenario, in dem Sie eine Assembly namens MYLIB.dll im Projektordner Ihrer verwalteten C++-Anwendung namens TestApp haben. Mit den folgenden Schritten wird ein post-build Ereignis eingerichtet, das diese DLL in den Ausgabeordner des TestApp-Projekts kopiert.

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des verwalteten C++-Projekts.

  2. Klicken Sie auf den Ordner Buildereignisse .

    Hinweis

    Erweitern Sie in Visual C++ konfigurationseigenschaften und dann Buildereignisse.

  3. Klicken Sie auf die Eigenschaftenseite Postbuildereignis .

  4. Ändern Sie die Befehlszeileneigenschaft in den folgenden Befehl:

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

Verwenden von Visual C++ .NET oder Visual C++

Mithilfe von Visual C++ .NET oder Visual C++ können Sie über das Dialogfeld Verweis hinzufügen einen Verweis hinzufügen. Führen Sie die folgenden Schritte aus, um einen Projektverweis hinzuzufügen:

  1. Wählen Sie Projektmappen-Explorer das Projekt aus.

  2. Klicken Sie im Menü Projekt auf Verweise hinzufügen.

    Hinweis

    Klicken Sie in Visual C++ im Menü Projekt auf Verweise, und klicken Sie dann auf Neuen Verweis hinzufügen.

  3. Klicken Sie im Dialogfeld Verweise hinzufügen auf die Registerkarte, die der Kategorie entspricht, auf die Sie einen Verweis hinzufügen möchten.

    Hinweis

    Klicken Sie in Visual C++ im Dialogfeld Verweise hinzufügen auf die Registerkarte Durchsuchen.

  4. Klicken Sie auf Durchsuchen, suchen Sie die gewünschte Komponente auf Dem lokalen Laufwerk, und klicken Sie dann auf OK. Die Komponente wird dem Feld Ausgewählte Komponenten hinzugefügt.

    Hinweis

    Suchen Sie in Visual C++ die Komponente, die sie auf Ihrem lokalen Laufwerk verwenden möchten.

  5. Klicken Sie auf Hinzufügen, um den ausgewählten Verweis zur aktuellen Registerkarte hinzuzufügen.

    Hinweis

    Klicken Sie in Visual C++ auf OK, um das Dialogfeld zu schließen und die Komponente im Dialogfeld Eigenschaftenseite des Projekts im Listenfeld Verweise hinzuzufügen.