Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.171 Beiträge
 
Delphi 12 Athens
 

Re: application.exename für DLLs?

  Alt 3. Sep 2009, 12:18
Im Prinzip (egal ob EXE oder DLL):

man hole sich einen Pointer innerhalb des gewünschten Moduls
z.B. die Adresse einer Funktion (vorzugsweise der Funktion, worin man das grad abfragt)
oder die Adresses eines Labels (siehe Delphi-Referenz durchsuchenGOTO)

Delphi-Quellcode:
P := @FunctionsName;

// oder
label Test;
begin
  Test:
  P := @Test;
dann frage man mit VirtualQuery nach nach der Base-Adresse des Speicherblocks
(in diesem Fall der Anfangsadresse der FileImages, worin der gefundene Pointer liegt)

diese BaseAdress entspricht zufällig dem Handle der DLL/EXE

und nun einfach nur noch MSDN-Library durchsuchenGetModuleName mit diesem Handle(Adresse)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat