Entwickler-Ecke
Windows API - Daten austauschen / Speicher global verwalten
Andreas Pfau - So 21.12.03 21:44
Titel: Daten austauschen / Speicher global verwalten
Hallo,
ich will Daten an eine andere Programm-Instanz schicken.
Zuerst wollte ich mit ReadProcessMemory() arbeiten, aber das geht nicht so toll. Mit GlobalAlloc tut's auch nicht, da ich damit nur aus dem Erzeuger-Prozess zugreifen kann. Was gibt es denn allgemein für Möglichkeiten, Daten (also Speicher) global auszutauschen, so dass ich als Parameter max. 8 Bytes (wegen SendMessage) übergeben muss? Das Ganze soll auch dann noch tun, wenn die Instanz, die die Daten erzeugt und versendet hat, beendet ist.
Christian S. - So 21.12.03 21:50
Hallo!
Mit WM_SENDDATA kannst Du einen Pointer auf eine beliebige Datenstruktur von einem Programm an ein anderes übergeben. Einfach mal im Forum danach suchen, es gibt da einen FAQ- oder Tutorial-Eintrag zu.
MfG
Peter
Andreas Pfau - So 21.12.03 21:53
Hallo,
ich sollte dazusagen: Ich will es mithilfe von RegisterWindowMessage() machen.
Außerdem: wenn ich einen Pointer verschicke, verfallen die Daten, wenn die Sender-Instanz beendet wird...
UC-Chewie - So 21.12.03 21:55
| Andreas Pfau hat folgendes geschrieben: |
| Außerdem: wenn ich einen Pointer verschicke, verfallen die Daten, wenn die Sender-Instanz beendet wird... |
Dann würden sich Filemappings anbieten. Dort erhälst du einen Speicherbereich, der von allen Prozessen verwendet werden kann.
Wie das geht, steht auch in Assarbads Tutorial.
Andreas Pfau - So 21.12.03 21:57
Hallo,
aber dazu muss ich doch eine Datei auf der HDD erzeugen, oder? Ist das nicht langsam? Ich verstehe FileMapping nicht so recht...
Motzi - So 21.12.03 22:04
@Peter Lustig: du meinst wohl WM_COPYDATA
Bei WM_COPYDATA mappt Windows die zu verschickenden Daten automatisch in den Prozess des Zielfensters... Nur Pointer auszutauschen würde sowieso nichts bringen, da Pointer immer nur im Adressraum des eigenen Prozesses gültig sind...!
Andreas Pfau - So 21.12.03 22:37
Hallo,
habe mir das mal angeschaut... jetzt tut es, ich habe das mit MMF verstanden. Danke!!! :D
Christian S. - So 21.12.03 22:48
@Motzi: ja und ja! (beides vergessen, ist ja schon spät; das mit dem Speicher musste so sein, sonst würde meine Anwendung (C++ und Delphi gemischt nutzen) gar nicht funktionieren) :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!