Gemeinsame DLL für mehrere Anwendungen

Hallo,

ich möchte eine Anwendung (Server) schreiben, die verschiedenen anderen Programmen (Clients) ein paar Funktionen zur Verfügung stellt und Daten von den Clients verwaltet.
Ich habe zuerst gedacht, man müßte den Server in eine Start-Anwendung (XXX.exe) und eine Bibliothek (XXX.dll, libXXX.so) zerlegen, wobei die Bibliothek die Daten und Funktionen für die Clients enthält und die Anwendung nur die Bibliothek lädt.

Allerdings gibt es zumindest unter Windows das Problem, daß die Clients, wenn als andere Prozesse gestartet, nicht auf die Daten eines anderen Prozesses (des Servers) zugreifen dürfen. Ich habe keine Ahnung, wie es unter UNIX bzw. Linux aussieht.

Nebenbei, der Server soll möglichst für mehrere Plattformen (mindestens Windows und Linux) gedacht sein und in C geschrieben werden.

Gibt es da Standard-Lösungen oder irgendwelche Ansätze, wie ich das machen könnte?

Danke, Sascha

Hallo Sascha,

Eine einfache Standard-Lösung kann es nicht geben, da das Betriebssystem rsp. dessen Speicherverwaltung, verhindert, dass Speicherbereiche einfach durch mehrere Tasks gemeinsam verwendet werden.
Unter Windows wird dieses Problem mit ActiveX-Componenten gelöst.

MfG Peter(TOO)

ich möchte eine Anwendung (Server) schreiben, die
verschiedenen anderen Programmen (Clients) ein paar Funktionen
zur Verfügung stellt und Daten von den Clients verwaltet.
Ich habe zuerst gedacht, man müßte den Server in eine
Start-Anwendung (XXX.exe) und eine Bibliothek (XXX.dll,
libXXX.so) zerlegen, wobei die Bibliothek die Daten und
Funktionen für die Clients enthält und die Anwendung nur die
Bibliothek lädt.

Allerdings gibt es zumindest unter Windows das Problem, daß
die Clients, wenn als andere Prozesse gestartet, nicht auf die
Daten eines anderen Prozesses (des Servers) zugreifen dürfen.
Ich habe keine Ahnung, wie es unter UNIX bzw. Linux aussieht.

Nebenbei, der Server soll möglichst für mehrere Plattformen
(mindestens Windows und Linux) gedacht sein und in C
geschrieben werden.

Gibt es da Standard-Lösungen oder irgendwelche Ansätze, wie
ich das machen könnte?