Einzelnen Beitrag anzeigen

MaxDelphi

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

AW: Eindeutiger Callback bei mehreren Instanzen des selben Programms

  Alt 28. Okt 2011, 09:36
@himitsu

Erst mal Danke für die Antwort, aber ich scheine mich nicht klar ausgedrückt zu haben. Es wird nicht die ganze DLL in ein MMF ausgelagert und es geht auch nicht darum dass alle Anwendungen auf die selben Funktionen zurückgreifen, sondern um die Möglichkeit dass sich Prozesse gegenseitig eine Nachricht zukommen lassen wenn Daten ausgetauscht werden.

1. Eine Anwendung ruft die DLL auf und nutzt die Funktion INIT mit dem Parameter Hnd in dem sich der Fenster-Handle der aufrufenden Anwendung befindet.
2. Der Handle wird in ein Array eingetragen und in ein MMF geschrieben.
3. Alle bekannten Mitglieder (siehe Array) erhalten eine Windows-Botschaft und sollten jetzt dieses MMF mit dem Array neu einlesen -> damit wissen wieder alle voneinander.
4. Die Anwendungen müssen selbstverständlich Windows-Botschaften verarbeiten können.
Das ist im Grossen und Ganzen der Mechanismus über den die Kommunikation realisiert wird.

Mein Ansinnen ist es Anwendern der DLL die Arbeit zu erleichtern -> kein Fenster-Handle heraussuchen und keine Botschaftsverarbeitung. Ich weiß auch gar nicht ob das alle Programmier- oder Skriptsprachen können. Die Wahrscheinlichkeit der Portierbarkeit scheint jedoch zu steigen wenn ich eine Callback verwenden kann. Das ist bisher gescheitert!


Lösungsansatz:
- Der Mechanismus mit den Botschaften klappt, hab ich ja getestet.
- DLLs können direkt keine Botschaften verarbeiten, ABER wenn man ihnen ein TForm mitgibt, die unsichtbar bleibt ....
- ... kann man sich deren Fenster-Handle und Botschafts-Verarbeitung zu nutze machen.
- Wenn dann eine Botschaft eintrifft, kann man ja immer noch einen prozeduralen Zeiger (Callback) benutzen um der Anwendungsinstanz der die DLL angehört eine Nachricht zukommen zu lassen.

Das werde ich jetzt mal ausprobieren, wenn's klappt poste ich den Quell-Code.
MfG,
MaxDelphi
  Mit Zitat antworten Zitat