Laden...

Gemeinsame DLL in zwei unterschiedlichen Prozessen als Kommunikationsbrücke..?

Erstellt von -Hades- vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.298 Views
-
-Hades- Themenstarter:in
171 Beiträge seit 2007
vor 12 Jahren
Gemeinsame DLL in zwei unterschiedlichen Prozessen als Kommunikationsbrücke..?

Hallo Forum,

ich habe ein kleines Problem.
Ich habe eine Win32 DLL geschrieben, die ich jetzt in 2 Programme einbinde. Das eine Programm kann leider nur DLL-Aufrufe tätigen. Ich möchte jetzt in dem zweiten Programm Daten aus dem ersten abrufen. Ich hatte gedacht ich kann das irgendwie über die gemeinsame DLL bewerkstelligen aber ich hab keine Idee wie das gehen soll. Ich könnte die DLL die Daten in eine Datenbank schreiben lassen und diese mit dem zweiten Programm dann aus der Datenbank holen aber is ja an sich unschön wie ich finde.

Das erste Programm kann auch leider wirklich grad mal ne DLL importieren und sonst nicht viel... Da kann ich auch nichts dran ändern.

Ich hoffe ihr habt eine Idee wie ichs anstellen kann.

Gruß
-Hades-

49.485 Beiträge seit 2005
vor 12 Jahren

Hallo -Hades-,

sofern die beiden Prozesse gleichzeitig aktiv sind, kann die DLL so ziemlich jede Technik zur ==> Interprozesskommunikation nutzen, z.B. Shared Memory oder Named Pipes. Bitte suche selber und lies dich selber ein.

herbivore

-
-Hades- Themenstarter:in
171 Beiträge seit 2007
vor 12 Jahren

Ah danke herbivore, das hört sich gut an.
Vor allem shared memory werd ich mir dann zunächst anschauen.
Kannst du vielleicht noch kurz erläutern was du mit gleichzeitig aktiv meinst? Reicht es dazu, dass beide programme dieselbe DLL einbinden und laufen?

Gruß
-Hades-

49.485 Beiträge seit 2005
vor 12 Jahren

Hallo -Hades-,

Reicht es dazu, dass beide programme dieselbe DLL einbinden und laufen?

ja, gleichzeitig laufen.

herbivore

C
2.121 Beiträge seit 2010
vor 12 Jahren

Ich glaube er meint dass die Daten in dieser DLL ausgetauscht werden. Also das eine Programm schreibt die Daten in einen Speicherbereich der DLL und das zweite holt sie da wieder raus.
Das geht aber nicht, da die DLLs in jedem Prozess separat eingebunden sind und einen eigenen Speicherbereich haben.

49.485 Beiträge seit 2005
vor 12 Jahren

Hallo chilic,

deshalb gibt es ja shared memory. Zwar ist der unter Windows wohl filebased, also man kann nicht wie auf normalen (Haupt-)Speicher zugreifen, sondern nur über Dateizugriffe, aber im Grunde geht damit genau, was du schreibst. Und selbst wenn man shared memory nicht verwenden kann oder will, gibt es noch genug andere Technik zur Interprozesskommunikation, die man nutzen kann.

herbivore

M
3 Beiträge seit 2010
vor 12 Jahren

Hallo,

vielleicht hilft Dir dieser Artikel weiter: Inter-Process Communication (IPC) Introduction and Sample Code.

LG

C
51 Beiträge seit 2010
vor 12 Jahren

Hi,

ich habe erst kürzlich auch Interprozesskommunikation benötigt.

Das Zyan Framework von Rainbird kann das ebenfalls bewerkstelligen und ist in der Anwendung sehr einfach.
Ich konnte damit Kommunikation von zwei Anwendungen schnell und problemlos umsetzen.

caldi