dll in exe reinkompilieren



  • ich möchte ein programm schreiben, das man auf den desktop kopiert und ausführen kann, nur eine (exe)datei.
    allerdings benötigt mein programm dll´s, die ich aber nicht mitkopieren will. wie bekomme ich die dll-funktionen in die exe rein.



  • Trulli schrieb:

    ich möchte ein programm schreiben, das man auf den desktop kopiert und ausführen kann, nur eine (exe)datei.
    allerdings benötigt mein programm dll´s, die ich aber nicht mitkopieren will. wie bekomme ich die dll-funktionen in die exe rein.

    Du kannst die dll's statisch in dein Programm linken, wie du das genau machen musst kann ich dir aber nicht sagen.

    Gruß
    Rudi G



  • soweit ich das verstanden habe wird beim statischen linken nur eine lib-datei erzeugt, die die dll-funktionen listet. die dll muß trotzdem auf dem rechner existieren. oder irre ich mich da?

    vielleicht hilft da implib weiter. aber wie macht man das?
    bei borland c++ soll das mit komandozeile gehen. aber wo ist das komandozeilentool? und wenn, hab ich dann tatsächlich die dll als lib umgewandelt?

    kann mir jemand eine anleitung zum umgang mit implib geben?

    wäre sehr dankbar.



  • also man benutzt die windows eingabeaufforderung und gibt ein

    tlib pfadzumobj.obj +pafadzumneeuenobj.lib

    das erstellt eine .lib datei. wenn ich das aber mit dll´s versuche bekomme ich immer als fehler invalid record kind 0x4C found, expected theadr or lheadr heraus.

    was bedeutet diese meldung?



  • Du kannst DLLs (dynamische Bibliotheken) nicht in statische Bibliotheken umwandeln. Im Zweifel ist es möglich, die DLL als Ressource zu einer ausführbaren Datei hinzuzulinken und zur Laufzeit zu entpacken und zu laden, aber davon wäre eher abzuraten.



  • audacia schrieb:

    Du kannst DLLs (dynamische Bibliotheken) nicht in statische Bibliotheken umwandeln. Im Zweifel ist es möglich, die DLL als Ressource zu einer ausführbaren Datei hinzuzulinken und zur Laufzeit zu entpacken und zu laden, aber davon wäre eher abzuraten.

    wie wird das gemacht. und warum wäre davon abzuraten?



  • Trulli schrieb:

    wie wird das gemacht. und warum wäre davon abzuraten?

    Einige Gründe, die dagegen sprechen:

    • Möglicherweise hatte der Ersteller der DLL einen guten Grund, keine statische Bibliothek als Alternative anzubieten.
    • Es könnte unter Umständen lizenzrechtlich problematisch sein, .dll-Dateien in die Executable zu integrieren.
    • Solchermaßen verborgene DLLs kannst du nur dynamisch laden; statische Bindung ist nicht möglich.
    • Die üblichen Vorteile von DLLs können nicht genutzt werden (Code nur einmal im Speicher vorhanden, Modularität).

    Natürlich kann es in bestimmten Situationen nützlich und sogar angebracht sein, benötigte DLLs in die Executable zu packen. Aber wie ich finde - und in dieser Hinsicht beantwortet sich dein Posting selbst - gehört das zu den Problemen, die man besser umschifft, sofern man nicht selbständig in der Lage ist, sie zu lösen.


Anmelden zum Antworten