Ich habe eine DLL, die ich ohne Probleme in Visual C# verwendet habe (einfach die Referenz hinzufügen und den Namespace verwenden). Jetzt versuche ich, C++ zu lernen, und ich verstehe nicht, wie Sie einen Namespace von einer DLL referenzieren. Ich kann mit der rechten Maustaste auf ein Projekt klicken und "Referenzen" auswählen und von dort auf "Neue Referenz hinzufügen" klicken, aber das liefert mir nur ein leeres "Projekt" -Fenster. Was vermisse ich?Verwenden einer DLL in Visual Studio C++
Antwort
C++ ist ein Los unterscheidet sich von C#/VB.Net, wenn es um die Verarbeitung von DLL-Referenzen kommt. In C# ist lediglich eine DLL erforderlich, da sie Metadaten enthält, die die Strukturen beschreiben, die darin liegen. Der Compiler kann diese Informationen so lesen, dass sie von einem anderen Projekt verwendet werden können.
C++ hat nicht das Konzept von Metadaten in der DLL in dem Sinne, dass C# tut. Stattdessen müssen Sie die Metadaten explizit in Form einer Headerdatei bereitstellen. Diese Dateien sind in Ihrem C++ - Projekt enthalten und dann wird die DLL zur Laufzeit verzögert geladen. Sie fügen sozusagen in C++ keine Referenz hinzu, sondern fügen stattdessen eine Header-Datei hinzu.
Sobald die Header-Datei enthalten ist, können Sie dann den Namespace zugreifen, indem Sie es in Ihren CPP-Dateien
using namespace SomeNamespace;
EDIT einschließlich: Die vorherige Antwort wird mehr hilfreich, wenn Sie nicht verwaltete C++ verwenden; Ich habe aufgrund der C# -Referenz angenommen, dass Sie auf verwaltetes C++ abzielen.
Der Dialog 'Referenz hinzufügen' sollte eine Reihe von Registerkarten haben - 'Projekte' listet Projekte in der aktuellen Lösung auf; .NET listet die Bibliotheken auf, die im GAC installiert sind, und "Durchsuchen" ermöglicht es Ihnen, selbst eine DLL zu finden.
Wenn Sie nur einen Verweis auf die DLL hinzufügen möchten, sollten Sie es mit "Durchsuchen" tun können. Wenn es sich bei der Ausgabe eines Projekts um die Quelle handelt, fügen Sie das Projekt zur Lösung hinzu und es wird unter der Registerkarte "Projekte" angezeigt.
Wenn das nicht hilft, welche Version von Visual Studio verwenden Sie und wo/was ist die DLL, die Sie verwenden möchten?
Zunächst einmal, wenn Sie versuchen, die gleiche DLL zu verwenden, die Sie in Ihrer C# -Anwendung verwendet haben, wenn Sie reines natives C++ verwenden, ist es nicht einfach, Aufrufe in diese DLL zu tätigen. Das Problem ist, dass die DLL, auf die Sie in C# verweisen, sich auf das .NET-Framework verlässt, um ausgeführt zu werden (es ist eine "verwaltete" DLL, wie alle C# -, VB.NET- und C++/CLI-Assemblies). Es gibt eine einfache Möglichkeit, "verwalteten" Code aus C++ zu referenzieren, und zwar durch Ausführen eines verwalteten C++ - Projekts (AKA C++/CLI) (Auswahl aus dem Abschnitt "CLR" im C++ - Projektassistenten in Visual Studio). Andernfalls können Sie nur auf die verwaltete DLL zugreifen, indem Sie sie COM anzeigen und COM verwenden, um auf das Objekt zuzugreifen.
- 1. C# Visual Studio-Lösung in einer DLL
- 2. Verknüpfen einer DLL in Visual Studio
- 3. Erstellen einer DLL in Visual Studio 2005
- 4. Verwenden einer DLL mit Qt in Visual Studio
- 5. Hinzufügen Verweis DLL Problem in Visual Studio
- 6. Erstellen von ActiveX-DLL in Visual C++
- 7. DLL von GAC in Visual Studio referenzieren
- 8. Verwenden einer AppDomain zum Instanziieren einer Klasse in einer DLL
- 9. Verwenden Sie Visual Studio-Ausnahme in C
- 10. Fehler beim Kompilieren einer DLL in Visual Studio
- 11. DLL Referenzen in Visual C++
- 12. Erstellen und Verwenden von DLLs in Visual Studio C#
- 13. Get Dll enthalten in Visual Studio
- 14. einen MFC-DLL in Visual Studio
- 15. Mehrere Steuerelemente in einer DLL mit Visual Studio
- 16. So erstellen Sie C DLL mit Visual Studio 2012
- 17. Verwenden einer statischen Bibliothek beim Erstellen einer DLL in Visual Studio
- 18. Visual Studio Solution Projektreferenz oder Dll-Referenz
- 19. Kann eine mit Visual Studio 2008 kompilierte C++ - DLL mit Visual Studio 2005 verwendet werden?
- 20. Visual Studio-Setup-Projekt - erzwingen Installation einer .DLL?
- 21. Visual Studio Beim Veröffentlichen einer Klasse fehlt DLL
- 22. Visual Studio 2012 native C++ DLL x86 Kompilierung
- 23. Fehler LNK 2005 & LNK1169 C++ Visual Studio DLL
- 24. Bedingte Einbettung einer Ressource in Visual Studio (C#)
- 25. Verwenden einer DLL in einer Winform-Anwendung in C#
- 26. C# C++ Visual Studio
- 27. Erstellen einer DLL-Datei in C# .Net
- 28. Debuggen einer Klassenbibliothek in Visual Studio
- 29. Verwenden einer DLL-Funktion zum Erstellen eines Minidump, wo Anwendung von Visual Studio nicht erstellt wird
- 30. referenzierte DLL in Visual Studio kann nicht seine eigene DLL C# finden
Ew, mit Namespace: | – GManNickG
@GMan, es ist nur wirklich böse, wenn in einer Header-Datei getan. Ich wollte eigentlich "in deinen CPP" -Dateien sagen, aber ich habe stattdessen C++ eingegeben. – JaredPar
'using namespace' ist wie alles andere ein Werkzeug, das richtig oder falsch verwendet werden kann. 'using namespace' in einer Headerdatei - bad. 'namespace' in einer C++ Datei verwenden - generell OK. Bis es ein Problem verursacht, hörst du einfach damit auf. –