Einzelnen Beitrag anzeigen

Schorschi5566

Registriert seit: 6. Feb 2006
197 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

BTMemoryModule für Win64 [XE2]

  Alt 14. Sep 2011, 07:55
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
Angehängte Dateien
Dateityp: zip BTMemoryModule.zip (426,3 KB, 87x aufgerufen)
Uwe
"Real programmers can write assembly code in any language." - Larry Wall
Delphi programming rocks
  Mit Zitat antworten Zitat