我想獲取重定向到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