Hinzufügen meiner DLL zu einem Visual Studio-Projekt in C ++

8

Ich arbeite an einem Projekt, bei dem eine dynamische Linkbibliothek erstellt wird. Daher möchte ich es in einer Konsolenanwendung in Visual Studio testen.

Die DLL ist auch in Visual Studio gemacht, sie hat nicht viel, nur ein paar Funktionen. Ich bin mir nicht sicher, ob ich nur den Header librarys in das Verzeichnis include directories in Properties einfügen oder etwas anderes tun soll

Viele Leute sagen, dass ich die entsprechende .lib -Datei im Bibliotheks- oder Referenzverzeichnis hinzufügen sollte, aber ich bin nicht sicher, ob VS eine .lib -Datei neben der DLL generiert. Ich benutze VS 2015.

    
Reaper9806 23.07.2015, 19:21
quelle

2 Antworten

8

Ich habe VS in diesem Moment nicht vor mir, aber das sollten die allgemeinen Schritte sein, um es einzurichten:

%Vor%

Um Ihre App zu erstellen, müssen sich die API-Header der DLL im Include für die Kompilierungszeit befinden. Es sind LIB-Dateien in der Bin für die Linkzeit. Sobald Sie Ihre App EXE haben, ist alles, was Sie brauchen, die DLL, die sich im selben Ordner befindet wie Ihre EXE, wenn sie ausgeführt wird.

Sie möchten vielleicht auch das DLL-Projekt und das App-Projekt zu einer gemeinsamen Lösung in VS hinzufügen und die Projektabhängigkeit von der App zur DLL hinzufügen (Rechtsklick). Dies stellt die korrekte Reihenfolge der Erstellung sicher, vorausgesetzt, Sie werden die DLL überhaupt erstellen.

    
V-R 23.07.2015, 19:32
quelle
2

Sie können auch tun, was ich getan habe.

  1. Sie können ein Libs -Verzeichnis innerhalb Ihres Solution-Verzeichnisses erstellen.
  2. Sie können dann Ihre .DLL-Dateien innerhalb des Libs -Verzeichnisses oder eines Unterverzeichnisses innerhalb von Libs

    platzieren
    • In meinem Fall habe ich das gesamte Verzeichnis SFML-2.3.2 hinzugefügt, das den Quellcode, die .lib-Dateien und die .dll-Dateien enthielt.
    • Ich habe das, was ich in den Projekteigenschaften erreichen konnte, verlinkt, aber ich habe die Makros von Visual Studio verwendet, um den Pfadnamen in das Lösungsverzeichnis einzugeben. Nur für den Fall, dass ich dies in die Versionskontrolle einbauen und von mehreren Rechnern aus daran arbeiten wollte.
  3. Dann habe ich die Property Page des Projekts geöffnet.

  4. Auf der Eigenschaftenseite ging ich zu Build Events - & gt; Post-Build-Ereignis - & gt; Befehlszeile
  5. Innerhalb der Befehlszeile können Sie einen Kopierbefehl hinzufügen, der alle benötigten Dateien in dasselbe Verzeichnis kopiert wie die ausführbare Datei, die sie benötigt.
    • In meinem Fall habe ich verwendet: copy "$(SolutionDir)Libs\SFML-2.3.2\bin\*" "$(TargetDir)"
    • Ich hätte mehrere Befehle schreiben können, um nur die einzelnen Dateien zu kopieren, die ich brauchte, aber ich hatte gut drei Stunden damit verbracht, SFML zum Laufen zu bringen, ohne es tatsächlich zu installieren.
Francisco Chavez-Tejeda 27.01.2016 23:00
quelle