Ausgabe einer externen Konsolenanwendung

the snake II

Erfahrenes Mitglied
Hallo zusammen,

ich möchte aus meiner Windows-Forms-Anwendung eine Konsolenanwendung starten und auf dessen Ausgabe zugreifen und Eingaben machen.

Speziell geht es darum, in eine Textbox eingegebenen LaTeX-Code zu kompilieren (per "latex.exe") und dessen Rückmeldung (Success/Failure) in der Konsole zu verarbeiten.

Bisher konnte ich die *.exe nur starten, aber nicht dessen Ausgabe einfangen:

Code:
ShellExecute(GetDesktopWindow(), "open", "latex",NULL, NULL, SW_HIDE);

Das zurückgegebene Objekt ist eine Pseudo-HINSTANCE, mit der man garnichts anfangen kann, außer zu prüfen, ob die exe gestartet wurde oder nicht.


Also, gibt es einen Weg, eine Konsolenanwendung aus der eigenen Anwendung auszuführen und dessen Ausgabe zu verarbeiten und evtl. Eingaben zu übergeben?

Gruß,

André
 

sheel

I love Asm
Hi

da du nicht in C/C++ programmierst, warum verwendest du nicht die .NET-Bordmittel?

Außerdem bist du hier falsch.
Verschoben.
 

the snake II

Erfahrenes Mitglied
Ich programmiere sehr wohl in C++. Habe doch sogar den Compiler angegeben. Das beantwortet dann auch deine Frage oder?

Wie kommste drauf, dass ich nicht in C/C++ programmiere? ^^
 

sheel

I love Asm
Ich bleib auch mit Compilerangabe (oder gerade deswegen) dabei,
dass du kein reines C/C++-Programm hast ;-]

Sobald Winforms drin sind, bist du näher bei C# als C, also .NET.
Namen der Sprache C++/CLI.
"gcnew", "^", "System::" usw...

Ist übrigens im C-Forum ganz oben ein Hinweis, getarnt als Häufige Fragen und Irrtümer.

Jedenfalls, wenn du auf einer C-Lösung bestehst: Pipes, popen
Ob du nicht doch besser .NET verwendest, hängt von deinem restlichen Code ab.
Stringkonvertierungen zw. nativ/Framework sind grauenhaft.

Gruß
 

the snake II

Erfahrenes Mitglied
Oh man... und ich dachte, wenn C++ draufsteht, ist C++ drin. Jetzt versteh ich auch, warum die VC++ 2010er Version die IntelliSense-Unterstützung eingestellt. Damit man C# benutzt.

Naja dann werd ich mir mal VC# Express besorgen.