Forum
Tipps
News
Menu-Icon

Batch-Variable an C++ Programm übergeben

Wie kann man eine Batch-Variable an ein C++ Programm übergeben? (Batch-Programm wird aus C++ Programm mit "system()" aufgerufen)
 


Antworten zu Batch-Variable an C++ Programm übergeben:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hi

wie wäre es, wenn die Variable in einer Datei abgelegt wird,
und C++ greift auf diese Datei zu

Die Idee hatte ich auch schon, aber das ist so viel zu schreiben.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

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...

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

... aber das ist so viel zu schreiben.


Wer zu faul zum Schreiben ist, sollte mit dem Programmieren gar nicht anfangen 8)

*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

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

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?  

« Letzte Änderung: 16.10.09, 20:02:19 von Klischeepunk »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

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 »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Wiederherstellungspunkt
Siehe Systemwiederherstellung. ...

C++
C++ ist eine von der ISO standardisierte Programmiersprache und eine erweiterte Form von C zur objektorientierten, generischen und prozeduralen Programmierung. Weitestgeh...

Internet-Zugriffsprogramm
Ein Internet-Zugriffsprogramm, auch Browser genannt, stellt Internetseiten für den Benutzer dar. Am bekanntesten ist der Microsoft Internet Explorer, gefolgt vom kos...