![]() |
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:
|
Re: DLL innerhalb eines Prozesses verwenden
Nein, nicht das Prozesshandle, sondern das Handle, was der Prozess für die DLL verwendet. Ichmeine, an das muss er dran kommen, sonst arbeitet er ja nicht mit der gleichen Instanz der DLL udn genau das will er ja.
Allerdings ist mir ziemlich schleierhaft, wozu man das braucht. Eventuell sollte er uns mal erklären, was er vor hat, dann kann man vielleicht einen einfacheren Weg finden. |
Re: DLL innerhalb eines Prozesses verwenden
Zitat:
Mehr Informationen könnten also nicht schaden. (Compiler, Hersteller (eiegene?), Funktionsprototyp(en), vorhandene IPC-Mechanismen, ...) |
Re: DLL innerhalb eines Prozesses verwenden
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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