- Referenz auf eine unmanaged C++ DLL von Verwaltetem C++

Diese Frage ergibt sich aus meiner vorherigen Frage: Erstellen der DLL von unmanaged C++, aber Sie würde nicht haben, es zu Lesen, um zu verstehen, diese neue Frage.

Ich habe jetzt eine DLL mit nicht verwaltetem C++ - code, bestehend aus ein paar Funktionen, von denen ich nur exportieren, eine für den Außenbereich. Als Nächstes muss ich mich mit dieser DLL, die in einer Verwalteten C++ - Projekt (gebaut mit Common Language Runtime-Unterstützung). So weit, ich habe einen Verweis auf die bestehenden unmanaged Projekt-header-Datei, indem Sie die Additional Include Directories im Visual Studio 2010.

Wenn ich jetzt versuchen, fügen Sie einen Verweis auf die DLL Datei: MyManagedProject > Properties > Common Properties > Add New Reference > Browse > MyUnmanagedDLL.dll bekomme ich einen Fehler Could not add a reference to file MyUnmanagedDLL.dll because it is neither a .NET assembly nor a registered ActiveX control. Jedoch, wenn ich die zuvor genannten DLL und ich kopiere es in den gleichen Ordner wie mein Managed C++'s executable funktioniert alles einwandfrei.

Ich bin nicht sicher, ob dies der richtige Weg, es zu tun, wie es zu sein scheint ein hackish-Lösung. Auch, es bedeutet, dass ich kopieren Sie die DLL über jedes mal, wenn ich eine änderung an dem Quellcode.

Zusammenfassend mein problem:

  1. Habe ich eine DLL, die aus nicht verwaltetem C++ - code, nennen wir es MyUnmanagedDLL.dll. Ich habe auch eine header-Datei für das DLL.
  2. Ich habe eine Verwaltete C++ - Projekt (CLR), nennen wir es MyManagedProject.vxproj
  3. Wie kann ich MyUnmanagedDLL.dll im MyManagedProject.vxproj? Gibt es ein richtige Art und Weise zu referenzieren, oder soll ich es einfach kopieren in das gleiche Verzeichnis wie MyManagedProject.exe? (Dies funktioniert, aber ich bin mir nicht sicher, ob seine gut üben...)

Zusätzliche Informationen: Windows 7, Visual Studio 2010 Ultimate, CMake 2.8.10.2

InformationsquelleAutor hjweide | 2013-01-24
Schreibe einen Kommentar