私は単純な C++ コンソール アプリケーションを持っていますが、アプリケーションを再作成せずに GUI を追加する方法があるかどうか疑問に思いました。
私は MinGW コンパイラ、Eclipse CDT IDE、および標準ライブラリとブースト ライブラリを使用しています。
私は単純な C++ コンソール アプリケーションを持っていますが、アプリケーションを再作成せずに GUI を追加する方法があるかどうか疑問に思いました。
私は MinGW コンパイラ、Eclipse CDT IDE、および標準ライブラリとブースト ライブラリを使用しています。
より正確な回答を得るためには、質問の詳細を説明する必要があります。
コンソールアプリケーションが提供する双方向性のレベルはどれくらいですか?
-プログラムの最後に出力を生成する入力パラメータを持つ単純なコマンドのようなものです
この場合、フォームまたは必要なものからパラメーターを取得するGUIフロントエンドをコーディングするだけで、GUIアプリケーションがコンソールコマンドを起動し、結果を解析してGUIに表示します。
-コンソールアプリケーションは非常にインタラクティブです(すべての実行中にユーザーからの入力を受け取ります)
std::inとstd::outを取り、GUIウィジェットで2つのストリームをレンダリングするGUIラッパーを作成できるかもしれませんが、それは難しい場合があります。これはあまり快適な解決策ではありません。コンソールアプリケーションコードの内部に入りたくない場合にのみ使用する必要があります。
この場合、アプリからライブラリを作成してから、そのGUIを作成する必要があります。
(コンソールアプリケーションの多くを知らなくても)
アプリケーションを作り直す必要があります。
コンソールアプリケーションが「よくできている」場合、ユーザーの操作は実際の関数型コードから切り離されているので、簡単な変換である必要があります。
適切なUIを作成し、必要な関数を呼び出すだけです。
たとえば、コンソールアプリケーションにテキストメニューと質問された回答が含まれている場合、GUIにボタンやメニュー、編集ボックスがあり、コードにパッチを適用する必要があります。
最大。
アプリケーションを書き直したくない場合は、GUI とコンソール アプリが別個の実行可能ファイルであり、GUI がコンソール アプリのインスタンスを生成し、それと通信して何らかのメカニズムを介してアプリケーションを駆動する、別個のエンジンとインターフェイス パターンを使用して試すことができます。 、例えば標準入力
コンソール アプリケーションをこの方法で駆動できない場合は、アプリを変更または書き直す必要があります。