0

私は単純な C++ コンソール アプリケーションを持っていますが、アプリケーションを再作成せずに GUI を追加する方法があるかどうか疑問に思いました。

私は MinGW コンパイラ、Eclipse CDT IDE、および標準ライブラリとブースト ライブラリを使用しています。

4

3 に答える 3

0

より正確な回答を得るためには、質問の詳細を説明する必要があります。

コンソールアプリケーションが提供する双方向性のレベルはどれくらいですか?

-プログラムの最後に出力を生成する入力パラメータを持つ単純なコマンドのようなものです

この場合、フォームまたは必要なものからパラメーターを取得するGUIフロントエンドをコーディングするだけで、GUIアプリケーションがコンソールコマンドを起動し、結果を解析してGUIに表示します。

-コンソールアプリケーションは非常にインタラクティブです(すべての実行中にユーザーからの入力を受け取ります)

  • コンソールアプリケーションコードは非常に大きく、コンソールの相互作用に非常に関連しています:

std::inとstd::outを取り、GUIウィジェットで2つのストリームをレンダリングするGUIラッパーを作成できるかもしれませんが、それは難しい場合があります。これはあまり快適な解決策ではありません。コンソールアプリケーションコードの内部に入りたくない場合にのみ使用する必要があります。

  • コンソールアプリケーションのコードはそれほど大きくないか、コンソールの入力/出力部分をプログラムの残りの部分から分割するのは簡単ではありません。

この場合、アプリからライブラリを作成してから、そのGUIを作成する必要があります。

于 2013-03-04T20:20:10.230 に答える
0

(コンソールアプリケーションの多くを知らなくても)

アプリケーションを作り直す必要があります。

コンソールアプリケーションが「よくできている」場合、ユーザーの操作は実際の関数型コードから切り離されているので、簡単な変換である必要があります。

適切なUIを作成し、必要な関数を呼び出すだけです。

たとえば、コンソールアプリケーションにテキストメニューと質問された回答が含まれている場合、GUIにボタンやメニュー、編集ボックスがあり、コードにパッチを適用する必要があります。

最大。

于 2013-03-04T18:19:50.590 に答える
0

アプリケーションを書き直したくない場合は、GUI とコンソール アプリが別個の実行可能ファイルであり、GUI がコンソール アプリのインスタンスを生成し、それと通信して何らかのメカニズムを介してアプリケーションを駆動する、別個のエンジンとインターフェイス パターンを使用して試すことができます。 、例えば標準入力

コンソール アプリケーションをこの方法で駆動できない場合は、アプリを変更または書き直す必要があります。

于 2013-03-04T18:22:48.097 に答える