コンソールアプリの制御

以前に作業した内容であるが、
こちらにUPしていなかったので、
メモ的にUP。
Windowsアプリ開発(VisualC++6.0)で、
コンソールアプリをGUIから制御する必要があったので、
試行錯誤、コンソールアプリの処理結果を取得するだけなら比較的簡単だが、
リアルに制御しようとすると、ちょっと面倒だった。
と、いうか、いままで避けて通ってきた道なので、
一から勉強。
試行錯誤の結果はソースに反映されているので、
とりあえず、作業中のメモからキーワードを抜き出し。
・コンソールアプリをDialogを起動して作業するなら、モードレスダイアログ。
 モーダルダイアログはメッセージの処理が面倒。
・コンソールアプリの起動。
 CreateThreadで起動したスレッドから、CreateProcessでコマンドを実行。
・コンソールアプリとのやりとりはPipe。
 Pipeを標準入出力と結びつけて処理。
・Pipeの処理は入力、出力ともにThreadで処理。
・データの受け渡しは、グローバル変数でOK。
 普通にグローバル変数で制御OKだった。
 スレッドの制御はint型のSwitch。
 やりとりはCString型の文字列。
 文字列のやりとりには、LockBufferでブロックの処理はしとく。
 しないと文字列がぐちゃぐちゃになる。
と、言った感じ。
また不明点などあれば、コメントでもいただければ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です