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 IPC Problem (https://www.delphipraxis.net/151159-ipc-problem.html)

idefix2 7. Mai 2010 20:39


IPC Problem
 
Hallo, ich versuche gerade aus meiner DLL Daten an das Hauptformular zu übermitteln. Ich habe eine Reihe von threads zu dem Thema angeschaut, und im SwissDelphiCenter.ch einen Thread gefunden, in dem WM_COPYDATA verwendet wird, der mir sehr einfach erschienen ist.

Aber PostMessage(WindowHandle, WM_COPYDATA, WindowHandle, Longint(@aCopyData)) liefert bei mir false, d.h. der Aufruf schlägt fehl und es wird keine Message abgesetzt. Möglicherweise, weil der 3. Parameter der Funktion das WindowHandle des Senders sein soll, meine DLL hat ja kein WindowsHandle, also hab ich dort 0 eingetragen, das geht anscheinend nicht - wenn das die Ursache ist. Auch mit der WindowHandle des EXE Files, das die DLL geladen hat, schlägt der Aufruf fehl (Das wär natürlich das selbe Handle, das auch als Empfängerhandle übergeben wird).

Bin für jeden zweckdienlichen Hinweis dankbar. Alternativ: Gibt es irgendwo fertige Klassen oder Units, mit denen ich irgend eine einfache Interprocesscommunication, egal wie, auf möglichst einfache Art aufbauen kann - Ich brauche es nur für Testausgaben, um die DLL zu debuggen, nachher fliegt es aus dem Programm wieder raus.

Hobby-Programmierer 7. Mai 2010 21:29

Re: IPC Problem
 
Nabend ...,
bastelst wohl immer noch an deinem Keylogger :mrgreen:
Schau mal hier

idefix2 8. Mai 2010 10:02

Re: IPC Problem
 
Hallo, danke

aber eben bin ich draufgekommen, dass ich das alles ohnehin nicht brauche - ich hab da DLL mit Dienst durcheinandergebracht und mir fest eingebildet, dass ich von einer DLL aus kein Formular ansprechen kann. Das ist natürlich Blödsinn, man muss das Formular bloss manuell erzeugen. Die ganze IPC kann ich mir also sparen und meine Testausgaben direkt in der DLL machen.

Vielleicht wäre das ja sogar von einem Dienst aus möglich, aber einen Dienst mach ich aus dem Projekt erst, wenn es funktioniert, und dann brauch ich keine Debug-Ausgabe mehr.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 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