我想获取重定向到C#控制台的C++控制台输出(printf(“”)语句)。将C++控制台输出重定向到C#控制台不会打印任何东西
以下是我所得到
Process e = new Process();
e.StartInfo.UseShellExecute = false;
e.StartInfo.RedirectStandardOutput = true;
e.StartInfo.FileName = "C:\\Users\\Projects\\ot\\x64\\Debug\\ot.exe";
e.OutputDataReceived += (s, e) => Console.WriteLine(e.Data);
e.Start();
e.BeginOutputReadLine();
但我没有得到任何输出。 C++控制台不会打印任何东西(这意味着输出已被重定向),这些代码行都不是C#。
我该如何解决这个问题?
感谢,
[OutputDataReceived](http://msdn.microsoft.com/zh-cn/library/system.diagnostics.process.outputdatareceived.aspx)上有一个很大的黄色注释,它表示“正在处理异步输出应调用WaitForExit()方法以确保输出缓冲区已被刷新。“ – 2012-02-04 14:29:11
谢谢你的回复雷蒙德。但WaitForExit()也是如此。其实我的C++是一个使用OpenCV的应用程序。 当我使用OpenCV相关函数时,只有printf语句不会重定向到C#控制台。就像我使用, CvCapture * capture = cvCaptureFromCAM(1); 后printf语句不会重定向到C#控制台。 – Gimz 2012-02-06 04:02:23