Einzelnen Beitrag anzeigen

MaxDelphi

Registriert seit: 29. Jun 2009
17 Beiträge
 
#1

Eindeutiger Callback bei mehreren Instanzen des selben Programms

  Alt 27. Okt 2011, 15:20
Hallo Forum,

ich habe ein Problem mit der Eindeutigkeit von Callbacks, wenn man mehrere Instanzen des selben Programms öffnet.

Ich hatte hier bereits einen anderen Beitrag der in diesem Thema: "Delphi-DLL in C++ benutzen" beschrieben wurde. Nur kurz:
- Die DLL existiert jetzt und funktioniert mit Delphi und C++. Es ging dabei darum, das mehrere Programme Daten miteinander austauschen und dazu eine DLL verwenden. Dabei meldet sich ein Programm bei der DLL an und kann dann mit anderen Teilnehmern Daten austauschen. Die Daten werden in ein Memory Mapped File ausgetauscht und wenn neue Daten eingetagen werden wird per Windows-Botschaft eine Nachricht gesendet so dass man darauf reagieren kann. Damit alle Teilnehmer an der DLL voneinander wissen tragen sie ihr Fenster-Handle ebenfalls in ein MMF ein, so daß jeder vom anderen weis.
- Die grundlegenden Techniken sind also Memory Mapped Files, Botschaften senden und empfangen.
- Ich würde dies gerne vereinfachen und das senden und empfangen von Botschaften durch die Verwendung von Callbacks ersetzen.
- Ein kleiner Test mit einer DLL der ein Callback übergeben wird und ihn dann auslöst und einer Delphi-Applikation hat toll geklappt.
- Jetzt wollte ich die Kommunikations-DLL entsprechend umbauen. Botschaften raus und statt dessen Adressen der Callbacks der einzelnen Applikationen im MMF einlagern, ABER wenn ich zwei Instanzen meiner Delphi-Test-Applikation öffne und den Funktionszeiger übergebe dann hat der Funktionszeiger beider Applikationen exakt die selbe Adresse. Das kann nicht gut gehen.

Hat jemand eine Idee wie man das trotzdem mit Callbacks hinkriegt, denn ich würde meine Kommunikations-DLL gerne noch für Kommunikation mit anderen Programmiersprachen oder vielleicht sogar OpenOffice-Basic nutzen.

Vielen Dank im voraus.
MfG,
MaxDelphi
  Mit Zitat antworten Zitat