Ich habe ein Programm in einer Linux-Version mit einer Plugin-Schnittstelle, wobei in einem entsprechenden Plugin-Ordner Bibliotheken abgelegt werden, die beim Start geladen werden und die Funktionalität des Programmes erweitern. In der Windows-Version werden hier DLL-Dateien und in der Linux-Version SO-Dateien erwartet.
Nun gibt es aber ein Haufen Plugins in der Windows-Version, die für Linux nicht vorhanden sind. Da es sich hier bei um ein Spiel handelt, bei dem die Plugins vor allem mit vom Hauptprogramm gestellten Funktionen hantieren ist der Quelltext der Plugins womöglich Plattformtransparent.
Gäbe es die Möglichkeit, in diesem Falle mit ein paar Handgriffen eine WIN32-Bibliothek in eine ELF- Bibliothek zu konvertieren/ neu zu linken? Falls nicht, wie realistisch wäre die Möglichkeit, DLL-Plugins mit Hilfe von WINE reinzuladen?
Hi,
also einfach umwaldeln geht nicht.
Du hast 2 Möglichkeiten:
– mithilfe von wine-librarys kannst du (falls quelloffenes Spiel) die Möglichkeit schaffen, dass man auch unter Linux Win-DLLs laden kann (wie es z.B. einige Video-Player auch machen)
– falls spiel closed-source(und du es trotzdem noch spielen möchtest ;-)) ): ein Linux-Wrapper-Plugin schreiben, dass dann mit den wine-libs die win-dll läd und die funktionen wrappt.
Ich habe das noch nie gemacht, kann dir also nicht sagen, wie das mit dem Win-DLL laden funktionniert, aber ich denke, dass das garnicht so schwer sein dürfte und nicht zu viel Zeit in Anspruch nehmen sollte…
Viele Grüße,
johannes
Das ist praktisch mittlerweile schon fast eine FAQ auf der wine-devel Mailingliste :)
In einem der Wine Weekly News vom April wurde das wieder mal erwähnt [1]
Vermutlich findest du im Archiv der Mailinglist eine genauere Auseinandersetzung mit dem Thema
[1] http://www.winehq.org/?issue=329#Windows/Linux Shared Objects