Forum: PC-Programmierung Paramterübergabe zur Laufzeit


von tib (Gast)


Lesenswert?

Hallo,

ich habe ein Programm, das ständig läuft, um alle paar Sekunden ein 
Polling zu starten, um einen Zustand zu prüfen. Während der Laufzeit 
ändern sich aber einige Parameter und ich möchte gerne von einem anderen 
Programm aus, dass die Parameter auswertet, neue Paramter übergeben und 
gegebenfalls eine Antwort zurückerhalten. Dafür reichen dann z.B. 
Strings oder so, die dann zwischen den beiden Programmen ausgetauscht 
werden. Wie kann ich das realisieren?

Danke im Voraus.

von ... (Gast)


Lesenswert?

Welches System verwendest du? Linux oder Windows? Unter Windows würde 
ich Windows-Nachrichten verwenden, die du von dem einem zu dem anderen 
Programm schicken kannst, wenn du die Fenster-Handles kennst. Die kannst 
du über den Fensternamen herausfinden.

von tib (Gast)


Lesenswert?

Arbeite unter Windows und Visual c++.
Gibts da vielleicht ein kleines Tutorial, oder ein Stichwort, wo nach 
man googlen könnte?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Du suchst Methoden zur Interprozesskommunikation. Unter Windows gibt 
es dafür verschiedene Möglichkeiten; Windows-Messages (diese setzen 
voraus, daß die Anwendungen auch diese Windows-Messages verarbeiten, was 
bei Konsolapplikationen nicht der Fall ist), Named Pipes, Sockets oder 
Shared Memory.

Named Pipes und Sockets haben den Vorteil, daß die beiden Prozesse auch 
auf unterschiedlichen Maschinen laufen können.
Shared Memory benötigt noch zusätzlicher Synchronisationsmechanismen wie 
Mutexe.

Windows-Messages sind gut geeignet, um einfache numerische Werte (zwei 
32-Bit-Werte) zu übertragen, wenn mehr Daten transportiert werden 
sollen, müssen diese in von beiden Prozessen einsehbaren Speicher 
verpackt, und dann ein Handle auf diesen Speicher transportiert werden.
Der Mechanismus entspricht dem von der Zwischenablage her bekannten.

von Johnny (Gast)


Lesenswert?

Mit Sockets kannst Du noch cool arbeiten. Wie bereits geschrieben wurde, 
können dann die Programme auch übers Netzwerk auf verschiedenen Rechnern 
laufen und man ist sogar Plattformunabhängig, sprich ein Teil kann für 
Windows programmiert werden und ein anderer für ein Unix Derivat wie 
z.B. FreeBSD.
Man muss sich nur ein kleines Protokoll ausdenken, damit sich die beiden 
Teile verstehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.