Einzelnen Beitrag anzeigen

Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Verzögertes Laden von Komponenten in Delphi 2005

  Alt 18. Nov 2004, 09:28
Fange wir mal mit ein paar Annahmen an. In Delphi Win32, wenn man es mal genau betrachtet, ist eine Klassenreferenz eigentlich nicht mehr als ein Pointer (Zeiger) in die virtuelle Methodentabelle (VTM). Die VTM ist im ".text" bzw. ".code" Segment des Modules (.exe, .dll oder Package) gespeichert. Dieses zu verstehen ist die Voraussetzung zur Ermittlung von Informationen des Speicherortes der Implementierung einer Klasse. Die Funktion VirtualQueryEx erleichtert uns das Auffinden des Modules welches die gesuchte Klasse definiert. Man muss nur die Klassenreferenz als Parameter an die Funktion übergeben und erhält die gesuchte Information in einer MEMORY_BASIC_INFORMATION Struktur. Das Feld AllocationBase speichert das Handle (HMODULE) des Modules welches die Klasse implementiert. Dieser Wert kann wiederum an die Funktion GetModuleFileName übergeben werden und denn vollständigen Pfad zum gesuchten Modul zu erhalten.
Daniel W.