从控制台窗口(c++应用)重定向到文本框(c#应用)
本文关键字:应用 文本 重定向 c++ 控制台 窗口 | 更新日期: 2023-09-27 17:50:49
我正在创建需要运行另一个应用程序的应用程序(c#)。app是游戏(c++,Directx7,GDI,我没有源代码),显示控制台窗口从dll(静态)调试。对于显示控制台窗口,该dll有以下行:
AllocConsole();
freopen("CONIN$","rb",stdin);
freopen("CONOUT$","wb",stdout);
freopen("CONOUT$","wb",stderr);
在我的c#应用程序中,我想隐藏控制台窗口并将文本从控制台窗口重定向到文本框。对于隐藏控制台窗口,我使用winapi FindWindow, ShowWindow不是问题。但是我怎么能重定向文本(输出)从控制台窗口到文本框?
你可以使用以下代码运行你的游戏:
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
}
}