Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#13

Re: COM-Server als Singleton umsetzen

  Alt 9. Jan 2009, 06:46
Also wenn ich mit Delphi-Bordmitteln einen COM-Server baue, dann wähle ich "Multithreaded" und als Threading-Modell "Free". Ich hab das mal durch Ausprobieren hinbekommen. Die EXE wird einmalig gestartet, nur für jede Verbindung wird ein eigenes COM-Objekt erzeugt (im Speicher).

Ich habe ein Hauptformular, das im OnCreate einmalig die 'globalen', also instanzübergreifenden Objekte in einem Datenmodul erzeugt, also irgendwelche Lookuplisten usw. Die einzelnen Instanzen meines COM-Objektes (die Implementierung des COM-Servers) greifen auf diese globale Instanz zu, wobei ich den Zugriff über CriticalSections kapsele, damit sich die Objekte nicht auf die Füße treten.

Vermutlich geht es auch anders, einfacher und besser, aber meine Lösung funktioniert und hat mich zum Ziel geführt.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat