Hallo zusammen,
vielleicht kennt ihr das Modul von Martin Offenwanger, mit dem es möglich ist eine
DLL aus einer Ressource oder ähnlichem direkt in den Speicher zu laden ohne Umwege über das Filesystem.
Leider funktioniert das Teil unter Win64 nicht und mir fehlt ehrlich gesagt das Spezialwissen über DLLs um eine Anpassung durchzuführen. Vielleicht bekomme ich es ja auf diesem Weg.
Im Code ist eine Stelle mit "// xy this procedure still contains 32 bit code.." markiert aber das scheint nicht das einzige Problem zu sein.
Ich habe versucht eine 64-Bit-
DLL (SQLite3) zu laden und er scheitert bei "BuildImportTable". Im Debugger habe ich gesehen, dass LastErr dort auf "BuildImportTable: GetProcAddress failed" gesetzt wird und die Funktion mit dem Kommentar gar nicht aufgerufen wird.
Die
DLL an sich funktioniert, das habe ich geprüft. Ich habe auch schon versucht Martin Offenwanger zu kontaktieren aber er hat sich bisher leider nicht gemeldet.
Im angehängten Zip ist die
Unit (DLL2MemoryModule.pas) und der von mir geänderte SQLite3-Wrapper in dem man sehen kann, wie ich das bisher unter
Win32 verwendet habe. Außerdem ist eine 64-Bit-SQlite-
DLL mit drin.
Vielleicht kann sich ja ein Experte mal damit befassen und wenn es nicht zuviel Aufwand ist, eine Lösung posten. Wäre toll.
Grüße,
Uwe