DLL aus C++



  • Hallo,

    wie erstelle ich am einfachsten eine DLL-Datei
    aus einer C++-Datei??

    Gegeben sind folgende Dateien: *.cpp / *.hpp / *.h
    Benötigt: *.dll

    Wie macht man das am einfachsten mit dem Borland
    oder auch anderen Compilern?

    Gruß
    Tim



  • Weißt du denn, was eine DLL ist und wofür sie gut ist? Was steht denn in deinen Dateien? Wenn du ein bestehendes Progrämmchen einfach per Compiler-/Linker-Option in eine DLL "verwandeln" willst, kannst du das so erstmal vergessen (sorry, wenn ich mich irre, aber so hört sich das gerade an 🙂 ). Beispielsweise musst du Funktionen, die du aus der DLL aufrufen willst, exportieren (also speziell deklarieren). Also beschreibe am besten erstmal, was deine Dateien denn beinhalten.



  • Zu deiner ersten Frage: Ich habe mich erkundigt was eine DLL ist und wofür sie gut sein soll. Ich verwende in meinem jetztigen Programm eine alte DLL,
    die die serielle Schnittstelle ansteuert. Nun haben sich einige Dinge geändert und der Code müsste geändert werden, dass habe ich soweit getan, nur muss
    ich nun wieder eine neue DLL kompilieren. Ich habe mir mal ein Beispiel-Tutorial zum Erstellen von DLLs angeschaut und hat soweit auch alles funkioniert.

    Nur weiß ich nun nicht genau, wie ich aus einer vorhandenen C++-Datei eine
    DLL erstelle...



  • Ok, dann sorry, wie gesagt. In dem Fall kann ich dir leider nicht weiterhelfen. Im VS würde ich einfach ein neues DLL-Projekt erstellen. Wie du es im Builder machen musst bzw. wie du den Linker beschicken musst, weiß ich nicht...



  • _matze schrieb:

    Im VS würde ich einfach ein neues DLL-Projekt erstellen [...]

    ... und den relevanten Code hineinkopieren. Würde ich im Builder genauso machen.



  • Hallo

    Siehe auch den Abschnitt zu DLLs in unserem Forums-Tutorial.

    bis bald
    akari



  • Ja dieses Tutorial habe ich mir angeschaut.

    Ich glaube ich werde versuchen den Code mit VS
    zu kompilieren, weil mir der Borland mehrere
    Fehlermeldungen bringt.



  • und welche?



  • Im alten Code sind Datentypen wie byte
    definiert ... Diese erkennt er nicht,
    wieso weiß ich auch nicht.



  • Die werden nicht erkannt, weil das keine Standarddatentypen sind. Hast du windows.h inkludiert?



  • Hm, also ich blicke da nicht ganz durch:
    Ich erstelle einen DLL-Wizard, und füge meine
    C++-Datei hinzu. Dann versuche ich das zu kompilieren
    und er bringt mir viele Fehlermeldungen (in dem Header .h
    und nicht .hpp)

    Jetzt habe ich zusätzlich in den Header die windows.h
    inkludiert und nun bringt er andere Fehlermeldungen
    die die stdlib.h betreffen ... ??? wieso ??



  • Vermutlich wäre es sinnvoll, diese Fehlermeldungen auch mal hier zu posten...



  • Jawohl werde ich tun,
    komme aber erst nächste Woche dazu.


Anmelden zum Antworten