![]() |
DLL innerhalb eines Prozesses verwenden
Hallo
Ich möchte auf die Proceduren einer DLL zugreifen welche in einem bestimmten Prozess geladen ist. Wie kann ich dies realisieren? Danke schonmal |
Re: DLL innerhalb eines Prozesses verwenden
Hey,
es ist doch egal, ob die DLL schon in einem anderen Prozess geladen ist oder nicht. Du lädst sie einfach in Deinen Prozess und kannst auf die Prozeduren zugreifen. MfG Klaus |
Re: DLL innerhalb eines Prozesses verwenden
@DelphiKlaus: nicht ganz. Wenn der andere Prozess die DLL mit bestimmten Funktionsaufrufen initialisiert hat deren Wert eman nicht kennt funktioniert es nicht.
|
Re: DLL innerhalb eines Prozesses verwenden
Genau um solche init werte....
Wie kann ich den nun auf die Funktionen einer in einem anderen Prozess geladenen DLL zugreifen? |
Re: DLL innerhalb eines Prozesses verwenden
Am einfachsten ist es wohl, eine weitere DLL in den fremden Prozess zu injizieren, die dann aufgefordert wird, bestimmte Funktionen aufzurufen und ihre Ergebnisse zurücktransferiert.
|
Re: DLL innerhalb eines Prozesses verwenden
Zitat:
Das ist ja mein problem.... Wie kommuniziere ich mit der DLL? Wie rufe ich Funktionen aus ihr auf? |
Re: DLL innerhalb eines Prozesses verwenden
Der injizierte Code muss sich mit
![]() |
Re: DLL innerhalb eines Prozesses verwenden
Also brauch ich das handle des Prozesses indem die DLL geladen ist?
|
Re: DLL innerhalb eines Prozesses verwenden
Deine DLL kann die Funktionen der fremden DLL ganz normal importieren (statisch oder dynamisch). Um Anforderungen entgegenzunehmen kannst du einen beliebigen IPC-Mechanismus verwenden. Dazu solltest du in der Hauptroutine der DLL (begin..end.) einen neuen Thread erzeugen, der dann als IPC-Server fungiert: Fensternachrichten entgegennehmen, an der Pipe lauschen... Aus diesem Thread kannst du dann die importierten Funktionen aufrufen.
Diese DLL musst du dann in den fremden Prozess injizieren. Dazu kannst du den normalen Weg mit CreateRemoteThread und LoadLibrary gehen. |
Re: DLL innerhalb eines Prozesses verwenden
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz