Forum: PC Hard- und Software .lib / .a-Dateien für MinGW


von Walter T. (nicolas)


Lesenswert?

Hallo zusammen,

ich nutze MinGW als Matlab-MEX-Compiler unter Windows. Für die 
Fragestellung ist das vermutlich nicht von Belang - hier reicht es 
vermutlich, MinGW als C-Compiler unter Windows (7x64) zu betrachten.

Ich habe DLLs, die für die Verwendung mit dem Microsoft-Visual 
C-Compiler vorbereitet sind, d.h. es liegt eine .dll und eine .lib vor. 
Ich will sie aber mit dem MinGW nutzen, der mit .lib-Dateien nichts 
anfangen kann. (Irgendwie kann er das schon- er frisst die Dateien und 
beschwert sich nicht mehr, daß die Symbolnamen fehlen. Allerdings 
erzeugt das fertige Binary eine Speicherschutzverletzung).

Lade ich die DLL "ganz normal" dynamisch mit LoadLibrary+GetProcAddress 
läuft alles Paletti- allerdings ist das ganz schön viel Schreibarbeit. 
Gibt es eine Möglichkeit, aus .lib und .dll eine Headerdatei zu 
erzeugen, die MinGw versteht?

Viele Grüße
W.T.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Walter Tarpan schrieb:
> Gibt es eine Möglichkeit, aus .lib und .dll eine Headerdatei zu
> erzeugen, die MinGw versteht?

Eine Headerdatei brauchst Du nicht, die hat mit dem Problem nichts zu 
tun.

Du brauchst "nur" eine andere Importlibrary für die DLL, und die 
müsstest Du Dir sogar selbstbauen können:

http://www.mingw.org/wiki/createimportlibraries

von Walter Tarpan (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Eine Headerdatei brauchst Du nicht, die hat mit dem Problem nichts zu
> tun.
>
> Du brauchst "nur" eine andere Importlibrary für die DLL, und die
> müsstest Du Dir sogar selbstbauen können:
>
> http://www.mingw.org/wiki/createimportlibraries

Hallo Rufus,
danke für die Antwort. Ja, Du hast Recht, ich brauche nur irgendeine 
Beschreibung, die dem Linker sagt, in welcher DLL er die Symbolnamen 
findet. Das DLLtool sollte hier das richtige sein. Zumal die besagten 
DLLs mit dem DependencyWalker ihre Symbolnamen korrekt preisgeben.

Vielen Dank
W.T.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.