3

C++ でプログラムを作成しました。できるだけポータブルにするためにコンソールを使用しているだけです。残念ながら、多くの Windows ユーザーはこのプログラムの使用方法を理解していないようです (Linux ユーザーは問題なく使用できます :))。そのため、そのプログラムの GUI を書きたいと思います。これは Windows でのみ実行する必要があるため、C# で記述したいと思います。

しかし、元のプログラムとは別に GUI を維持したいと考えています。基本的に、コンパイルされた *.exe を別のプログラムに含める方法が必要です。別のプログラムからのコンソール出力をキャッチして入力を送信する方法はありますか? また、元のプログラムのコンソールを非表示にすることはできますか?

類似の質問

方法: C# でコマンド ラインを実行し、STD OUT の結果を取得する

4

5 に答える 5

1

プログラムをC++ライブラリに抽出して、C++コンソールプログラムで使用できるとしたら、すばらしいでしょう。これをC#と統合するには、pInvokeエントリポイントをそのDLLに定義するだけで、GUIアプリケーションから直接コードを呼び出すことができます。

于 2010-03-26T15:57:20.733 に答える
1

これを行うには、いくつかの方法があります。System.Diagnostics.Processクラスには、アプリケーションの入力と出力にアクセスできるメソッドがあり、そこから自動化できます。

基本的に、StandardInputメソッドとStandardOutputメソッドを使用して出力を取得し、入力を操作してアプリケーションを制御できます。質問に追加された「類似の質問」への投稿は、その最初の部分であるStandardOutput部分を示しています。

于 2010-03-26T15:59:30.290 に答える
0

ここを見てみてください

于 2010-03-26T15:57:58.583 に答える
0

C#アプリにコマンドラインスイッチ(たとえば/ g)を含めて、コンソールではなくGUIモードでアプリケーションを実行することができます。Main関数で引数を評価し、入力を受け入れて任意のアルゴリズムを実行するWinフォームを起動するか、コンソールモードに固執するだけです。デフォルトでは、アプリはコンソールを実行します。選択した場合はその逆になります。

于 2010-03-26T15:58:06.147 に答える
0

あなたが望むものはおそらく重複でカバーされていますが、あなたは答える必要がある1つの特定の質問をしました:

コンパイルされた*.exeを別のプログラムに含める方法が必要です

あなたは本当にこれを行うことはできません。せいぜい、@ Justin Ethierが提案するように、GUIとコマンドラインツールの両方が依存するライブラリを作成できます。

于 2010-03-26T15:58:56.470 に答える