DLL in Exe-Datei einbinden



  • Hallo,

    Mein Programm greift auf einige Funktionen einer DLL zu, die ich gerne zusammen mit dem Programm mitliefern möchte. Nun stehe ich vor dem Problem: Wie kann ich die DLL in meine Exe_Datei einbinden und beim starten des Programms aus der Exe-Datei wieder entpacken, damit das Programm fehlerfrei läuft? Ich habe mir schon überlegt die DLL im Hex-Format in eine static char-Variable in der Exe- Datei zu speichern und den Inhalt der Variable beim Programmstart in eine neue Datei zu schreiben. Meine DLL ist circa 28 kb groß und wenn ich den Inhalt mit Copy Paste versuche bei MSVC einzufügen kommen zwischen den Anführungsstrichen nur 3 leere Zeilen circa so:

    {"

    "};

    Kann mir jemand weiterhelfen mit dem Einbinden der DLL?



  • Wieso gibst du die DLL nicht einfach so mit dem Programm mit???



  • Weil ich das ganze gerne als eine Datei herausgeben möchte und keine komplizierteren Lösungen wie zip-Datei die man ersten entpacken muss oder zwei einzelne Dateien die man noch in ein entsprechendes Verzeichnis kopieren muss etc...
    Weiss jemand eine Lösung für das problem?



  • Wie wäre es mit nem Installer, da gibst du auch nur eine Datei raus und der anwender kann sogar noch entscheiden wohin es installiert werden soll.



  • Das ist nur ein kleines, sehr einfaches Programm. Da mit einem Extra-Installer zu arbeiten wäre wohl so wie mit Kanonen auf Spatzen zu schiessen. Ich suche wenn möglich wirklich eine Lösung für das Problem wie oben beschrieben oder ähnlich.



  • DLL-Problem schrieb:

    Weil ich das ganze gerne als eine Datei herausgeben möchte und keine komplizierteren Lösungen wie zip-Datei die man ersten entpacken muss oder zwei einzelne Dateien die man noch in ein entsprechendes Verzeichnis kopieren muss etc...

    wenn du darauf ansprichst, daß die DLL's normalerweise im windows system/system32 ordner liegen... könnte ich dich beruhigen, es sollte auch funktionieren wenn die .dll im selben verzeichnis wie die .exe liegt !!!

    DLL-Problem schrieb:

    Weiss jemand eine Lösung für das problem?

    man kann keine DLL direkt in die .exe einbinden... wurde hier auch schon mehrfach diskutiert ( solltest was finden wenn du die SUCHE benutzt ).
    es gibt kostenintensive tools, die aus der .dll eine .lib erzeugen können... die man dann zur .exe binden könnte... wird aber für dich nicht in frage kommen !!!

    ciao veganza



  • Eventuell könntest du die Dll auch als Resource an dein Programm ranhängen, und dann bei Bedarf einfach eín eine Datei schreiben.



  • Wenn die DLL bei Programmstart gebraucht wird dann startet das Programm nicht wen die DLL nicht da ist. Somit wiord die DLL auch nicht aus der Resource erzeugt.
    Es gibt aber die Möglichkeit die DLL später zu laden wenn sie gebraucht wird. Ist eine Compilereinstellung.
    Schaue im Laufe des Tages mal nach.


Anmelden zum Antworten