Salkin Renre Gast |
Batch-Variable an C++ Programm übergeben
Antworten zu Batch-Variable an C++ Programm übergeben:
Ist aber einfach. Ansonsten gibts natürlich auch andere Möglichkeiten zur Interprozesskommunikation (wobei ich jetzt nicht weiß, welche davon man auch in Batch-Dateien einsetzen kann), z.B. Dynamic Data Exchange (DDE), (XML)RPC etc.
Ist dann vielleicht nicht so viel zu Schreiben, wenn du fertige Lösungen einsetzen kannst, dafür vorher viel zu Lesen...
... aber das ist so viel zu schreiben.
Wer zu faul zum Schreiben ist, sollte mit dem Programmieren gar nicht anfangen
*ganz-klein-mach*
Mh wie wäre es mit Programmen wobei das 2te von der Batch ausgeführt wird mit *Daten* als kommandozeilenparameter? ist zwar auch widerlicher sch..., aber dafür gemütlich zu schreiben.
Interprozesskommunikation bei Batch würde mich sehr wundern da's ja eigentlich nur ne Befehlsfolge ist und aus beliebigen Prozessen bestehen kann, ebenso würds mich wundern wenn für die Batch ausserhalb der CMD speicher reserviert würde. Korrekturen nehm ich hier aber gern entgegen.
Was evtl. möglich wär - schau ob die CMD irgendwelche APIs bietet.
Ansonsten siehe eBill und Lisaa
Zumindest DDE geht definitiv. Ist zwar wahrscheinlich nicht im Sinne des Erfinders, aber man kann ein Protokoll mit entsprechendem DDE execute command registrieren, im C++ einen DDE Server laufen lassen und dann aus der batch mit dem Windows shell execute ein command absetzen (das dann die zu sendenden Daten enthält). Weiß nicht, ob die anderen DDE Sachen da auch gehen, aber mit execute gehts auf jeden Fall.
Wenn man sich für die "2-Programme-Lösung" entscheidet kann man aus diesem die Daten, die als Kommandozeilenparameter übergeben werden, auch über TCP z.B. an das erste Programm schicken. Oder geht sowas auch direkt?
Mein erster gedanke wären Pipes, aber ich weiss nicht inwieweit Windows vergleichbares beherrscht.
also etwa (BASH)so:
echo "ALLE WICHTIGEN DATEN" | ./DeinProgramm
Allerdings ist das während der Runtime nicht möglich, da erst 1 ausgeführt wird, dann 2. Hier wär allerdings auch n Switch in der Kommandozeile möglich (Zahlenwert, flag, ...) "Wo startet das PGM erneut?"
/e: Vergiss den gedanken, das läuft auch auf die 2 Programmlösung raus nur dass es statt 2 Programmen nur 1 ist, das entsprechend bedient wird.
Achja aus Neugier:
Wie ist per DDE zwischen Prozess und Shellscript eigentlich die möglichkeit der Synchronisation/Laufzeitkontrolle gegeben oder realisierbar?
Keine Ahnung was DDE noch so kann, aber mit dem execute sendet der Client im Endeffekt nen String an der Server. Der Mechanismus wird z.B. verwendet wenn du in einem Programm auf nen http-Link klickst. Dann wird der Link über DDE an deinen Browser gesendet (sofern der bereits läuft). Da kann man dann alles mögliche mit machen, ist allerdings nur one-way.
« Programm beendet sich nicht, sondern läuft unendlich weiter. | Programmierwettbewerb » | ||