Hallo,
wir habe da ein recht grosses Projekt das aus einer Reihe von Anwendungen,
COM-Objekten und normalen DLLs besteht.
Bisher war es für einige Teile des Gesamtsystems nur wichtig zu wissen ob z.B. eine bestimmte Anwendung läuft oder eine bestimmte
DLL irgendwo geladen ist. Dazu haben die einzelnen Subsysteme jeweils Mutexe mit definierten Namen angelegt. So konnten andere Teile des Systems nachschauen ob ein bestimmter Mutext schon da ist oder nicht. Das funktioniert soweit ganz gut.
Jetzt wird es in Zukunft aber nötig werden, dass ein Teil der Anwendung vom anderen bestimmte Werte auslesen kann.
Dabei scheiden z.B. Messages wie WM_COPYDATA aus, da nicht alle beteiligten Softwarekomponenten über Nachrichtenfenster verfügen und das auch nicht sollen.
Ich hatte zuerst an simple INI-Dateien gedacht über die Werte auszutauschen sind aber das könnte zu Problemen führen wenn ein Teil gerade die INI-Datei schreibt während ein anderer gerade lesen will. Der Zugriff auf so eine INI-Datei müsste dann irgendwie (
Mutex, Semaphore) synchronisiert werden. -> nicht so günstig.
Habt Ihr Vorschläge, was man da zum Datenaustausch am besten nehmen könnte? Es wird sich bei den Daten (erst mal) nur um Integerwerte und einige Strings handeln. Allerdings könnte es für Teile der Anwendung nötig sein sehr oft auf diese Daten zuzugreifen, wenn die Werte irgendwo im Speicher stehen wäre das sicher sinnvoll.
Lösungen an die ich gedacht habe wären:
- Memory Mapped Files
- Mailslots
- Named Pipes
Irgendwelche Denkanstösse? Hab ich noch die eine oder andere Möglichkeit vergessen?
Danke schon mal,
Ralf