Hier ist eine erste Version meiner Unit zur Interprozesskommunikation mit Objekten.
Die Unit ist mit Delphi 5 entwickelt und ich möchte euch bitten das mal zu testen. Dazu ist ein Minimaldemo dabei. Besonders interessiert es mich, ob das unverändert auch mit späteren Delphiversionen funktioniert.
Das Ganze beruht auf MemoryMappedFiles. Der Clou dabei ist, dass eine Basisklasse bereitgestellt wird, deren Nachfahren ihre Daten statt im RAM in einem MemoryMappedFile ablegen. Möglich sind dabei alle Arten von Feldern in den Objekten, die ihre Daten im Objekt ablegen. Strings und Dynamische Arrays sind nicht zugelassen. Aber für viele Anwendungen reichen ShortStrings ohnehin.
Virtuelle und dynamische Methoden sind in diesem einfachsten Fall nicht möglich.
Das Minimaldemo erstellt ein Fomular mit einem Edit-Feld, einem Get- und einem Set-Button.
Set speichert den aktuellen Inhalt des Edit-Feldes in das IPC-Objekt, Get liest den aus und zeigt ihn im Edit-Feld an. Werden mehrere Instanzen des Programms gestartet, dann greifen sie alle auf das gleiche IPC-Objekt zu - eben ein minimales Beispiel für IPC.
Eine zweite Basisklasse bietet darüber hinaus die Möglichkeit, virtuelle Methoden zu verwenden.
Um auf diese IPC_VM-Objekte zugreifen zu können, müssen Zugriffe mit Lock und Unlock gekapselt werden. Dabei wird die VMT lokalisiert, so dass virtuelle Methoden zugreifen können!
Einloggen, um Attachments anzusehen!