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.