Wie erstellt man eine einfache DLL mit g++?



  • Hi.

    Ich möchte eine ganz einfache DLL erzeugen und benutzen, habe dabei aber Probleme, die richtigen Compiler-Aufrufe zusammenzubasteln.

    Die DLL soll relocatable sein mit LoadTimeBinding und eine DllMain haben.
    Ich hab jetzt was funktionierendes zusammengestellt, allerdings mit dllwrap oder dlltool, die wohl obsolete oder deprecated sind?! Wie macht man das richtig und möglichst einfach?

    g++ -DBUILD_DLL -c SimpleDLL.cpp
    g++ -c Main.cpp
    dllwrap --def=SimpleDLL.def --output-lib=SimpleDLL.lib --entry=_dll_entry --dllname=SimpleDLL.dll SimpleDLL.o
    g++ -o Main.exe Main.o -lSimpleDLL -L./

    SimpleDLL.cpp enthält den DLL code.
    BUILD_DLL ist zum Umschalten zwischen declspec(dllimport/dllexport)
    Main.cpp benutzt eine Funktion der DLL.

    Wie lauten die korrekten g++-Aufrufe?
    Wie erzeuge ich ein korrektes .def-File? (Ich will nicht alles exportieren)
    Wenn ich die .def von Hand erzeugen muß, wie müssen die Einträge aussehen(naming convention)? Mit diesen @ Symbolen? Welche Nummern?
    Wie ersetze ich das dllwrap?

    Danke im Voraus
    Grüße, Nybbler


Anmelden zum Antworten