2012-04-09 14 views
0

私は既存のC++ win32コンソールアプリケーションを持っています。このアプリケーションには、リアルタイムでハードウェアからのデータを連続的に処理し、クライアントにデータをストリーミングするためのサーバーコンポーネント(スレッド化された)を持つメインプログラムが含まれています。C++ win32コンソールへのGUIの追加

このコンソールプログラムを実行する前に、ユーザーがいくつかのプログラムパラメータを入力するためのGUIを作成できるかどうかを考えています。 GUIは、コンソールプログラムのステータスのみを表示するつもりです。ユーザーが[スタート]ボタンをクリックした後にユーザーの操作は必要ありません。

可能かどうかアドバイスしてください。ありがとう!

+0

コマンドラインパラメータを考慮しない理由はありますか? – yasouser

+1

@yasouserコンソールプログラムへの入力パラメータが間違って入力するコマンドラインパラメータを入力するよりも明確になるように、ユーザーにGUIを与えることを考えていますか? – user990639

答えて

3

もちろん、window message loopのスレッドを作成するだけです。これは、あなたの記述のために別のスレッドを必要とするでしょうが、既存のコードの正確な詳細に応じて、別の方法を考え出すことができます。

逆も同様です.GUIアプリは、コンソールを作成して出力することもできます。

1

あなたはどんなツールキット(たとえばQt、Gtk、Windows API ...)でもGUIを作成し、標準system(const char *)機能を使用します。

many front endsが存在するため、Nmapは素晴らしいトピックです。ソースを掘り下げて、コンソールアプリケーションのフロントエンドの仕組みを確認することができます。

1

コンソールアプリケーションをテキストファイルを使用して構成するのが一般的です。そのため、ユーザーの介入なしにバッチスクリプトから実行できます。設定ファイルはパラメータで指定できます。

これを取得したら、GUI設定エディタとランチャを書くのは簡単です。監視プログラムはおそらく、プロセスが終了するか、コンソール出力に何かが表示されるかを報告する通知領域アイコンを作成することをお勧めします。

0

私がGUIにプロセスを実装した方法(残念なことにGUIを含む設計について考えていないとき)は、アプリケーション用のコードを実行するposixスレッドプロセスと、GUI用のコード1つの変数はプロセスの書き込み、GUIの読み取り、そしてもう1つの変数は、プロセスのために読み込まれ、GUIのために書き込まれます。

情報を待つためにビジー待機(悪い)を使用し、各ビジー待機ループの間でホップに変化するために、処理係数を書き直さなければなりませんでした。ビジー状態の変更にはあまり時間がかかりませんでした。

これは本当に最適な方法ではありません(これは非常にハッキリです)。そしてGUIは、後で 'タックしてください'ではなく、最初からコードに設計する必要があります。しかし、これは私のために働いてGUIは驚くほどよく最後の追加のために追加しました。

関連する問題