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.
Originalversion des Produkts: 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 über das Dialogfeld " Verweis hinzufügen " einen Verweis 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-Referenzen
.NET-Verweise verweisen auf freigegebene Assemblys. Die AssemblySystem.Windows.Forms.dll ist beispielsweise eine Standardassembly für den Zugriff auf die Windows Forms Klassen. Um diese Assembly in einer verwalteten C++-Anwendung zu verwenden, 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 umfasst eine Entwurfsentscheidung. Eine Option besteht darin, nicht verwalteten COM-Code innerhalb einer verwalteten Klasse zu verwenden. Sie können sich beispielsweise 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-Interoperabilität 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 zum Erstellen einer Interopassembly für ein COM-Objekt das tool TLBIMP.exe. Führen Sie beispielsweise die folgenden Schritte aus, um Internet Explorer aus einer verwalteten Anwendung zu automatisieren:
Öffnen Sie eine Eingabeaufforderung.
Navigieren Sie zum Ordner Windows System.
Geben Sie den folgenden Befehl ein:
tlbimp shdocvw.dll /out:Interop.shdocvw.dllVerschieben sieInterop.shdocvw.dll in Ihren Projektordner.
Dadurch wird eine Interopassembly für die COM-Objekte in Shdocvw.dll erstellt. Die resultierende DateiInterop.shdocvw.dllkann mit einer #using Direktive 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 "Using post-build events " in diesem Artikel.
Hinweis
Die Umgebungsvariablen für Visual C++ müssen festgelegt werden, damit TLBIMP.exe erkannt werden. 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 ausgeführt ./VC7/BIN/VCVARS32.bat werden.
Project Verweise
Project Verweise sind Verweise auf Assemblys, die von anderen Projekten erstellt wurden. Auch hier wird die #using Direktive 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. Dafür gibt es zwei Methoden:
- Kopieren Sie die Assembly in den Projektordner.
- Ändern Sie die Projekteinstellungen, um nach der Assembly zu suchen:
Öffnen des Dialogfelds "Eigenschaftenseiten " des Projekts.
Klicken Sie auf den C/C++ -Ordner.
Hinweis
Erweitern Sie in Visual C++ die Konfigurationseigenschaften und dann C/C++.
Klicken Sie auf die Eigenschaftenseite "Allgemein ".
Ä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 Ereignissen post-build automatisiert werden. Betrachten Sie z. B. ein Szenario, in dem Sie eine Assembly mit dem Namen 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.
Öffnen des Dialogfelds "Eigenschaftenseiten " des verwalteten C++-Projekts.
Klicken Sie auf den Ordner "Buildereignisse ".
Hinweis
Erweitern Sie in Visual C++ die Konfigurationseigenschaften und dann die Buildereignisse.
Klicken Sie auf die Eigenschaftenseite "Post-Build Event" .
Ändern Sie die Befehlszeileneigenschaft in den folgenden Befehl:
copy $(<ProjectDir>)mylib.dll $(<TargetDir>)
Verwenden von Visual C++ .NET oder Visual C++
Mit 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 Projektbezug hinzuzufügen:
Wählen Sie in Projektmappen-Explorer das Projekt aus.
Klicken Sie im Menü Project auf "Verweise hinzufügen".
Hinweis
Klicken Sie in Visual C++ im Menü "Project" auf "Verweise", und klicken Sie dann auf "Neuen Verweis hinzufügen".
Klicken Sie im Dialogfeld " Verweise hinzufügen " auf die Registerkarte, die der Kategorie entspricht, der Sie einen Verweis hinzufügen möchten.
Hinweis
Klicken Sie in Visual C++ im Dialogfeld "Verweise hinzufügen" auf die Registerkarte "Durchsuchen".
Klicken Sie auf "Durchsuchen", suchen Sie die gewünschte Komponente auf Ihrem 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 gewünschte Komponente auf dem lokalen Laufwerk.
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 Listenfeld "Verweise " im Dialogfeld " Eigenschaftenseite " des Projekts hinzuzufügen.