3

別のアプリを実行する必要があるアプリケーション (C#) を作成しています。これ。アプリは、dll (静的) からデバッグするためのコンソール ウィンドウを表示するゲーム (C++、Directx7、GDI、ソースがありません) です。コンソール ウィンドウを表示する場合、この dll には次の行があります。

AllocConsole();
freopen("CONIN$","rb",stdin);   
freopen("CONOUT$","wb",stdout);
freopen("CONOUT$","wb",stderr);

私のC#アプリで。コンソール ウィンドウを非表示にして、テキストをコンソール ウィンドウからテキスト ボックスにリダイレクトします。コンソール ウィンドウを非表示にするには、 winapi FindWindowを使用していますが、ShowWindowは問題ありません。しかし、コンソールウィンドウからテキストボックスにテキスト(出力)をリダイレクトするにはどうすればよいですか?

4

1 に答える 1

1

次のコードを使用してゲームを実行できます。

     Process process = new Process();
     process.StartInfo.FileName = "\"" + pathToGame + "\"";
     //process.StartInfo.Arguments = args;
     process.StartInfo.RedirectStandardOutput = true;
     process.StartInfo.RedirectStandardError = true;
     process.StartInfo.UseShellExecute = false;
     process.OutputDataReceived += new DataReceivedEventHandler(ReadOutput);
     process.ErrorDataReceived += new DataReceivedEventHandler(ReadOutput);

     process.Start();
     process.BeginOutputReadLine();
     process.BeginErrorReadLine();

     //process.WaitForExit();

CL の出力とエラーがここに表示されます

  private static void ReadOutput(object sender, DataReceivedEventArgs e)
  {
     if (e.Data != null)
     {
        //your output here
     }
  }
于 2013-01-05T12:24:57.297 に答える