Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi BTMemoryModule für Win64 [XE2] (https://www.delphipraxis.net/163051-btmemorymodule-fuer-win64-%5Bxe2%5D.html)

Schorschi5566 14. Sep 2011 07:55

BTMemoryModule für Win64 [XE2]
 
Liste der Anhänge anzeigen (Anzahl: 1)
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. :lol:

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz