Я написал C++
консольное приложение, которое (используя обычное printf
звонки) печатает сообщения на консоль.
Кроме того, я написал C#
консольное приложение, которое запускает несколько экземпляров C++
приложение.
Я пытаюсь (для использования в других приложениях) перенаправить вывод C++
приложение, изнутри C#
приложение, к консоли.
Вот мой C#
код приложения:
private static void OutputRedirection(object sendingProcess, DataReceivedEventArgs outLine)
{
try
{
if (outLine.Data != null)
Console.WriteLine(outLine.Data);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
private static void RunAPP()
{
var newProcess = new Process();
newProcess.StartInfo.FileName = m_baseDir + @"\" + m_myApp;
newProcess.StartInfo.WorkingDirectory = m_baseDir;
newProcess.StartInfo.UseShellExecute = false;
newProcess.StartInfo.RedirectStandardOutput = true;
newProcess.OutputDataReceived += OutputRedirection;
newProcess.Start();
newProcess.BeginOutputReadLine();
}
Однако, когда я делаю это, я вижу перенаправленный вывод только после завершения процесса (это означает, что C++
Приложение завершено.
Есть ли способ сделать вывод перенаправленным на Real-Time
— это означает, что вывод будет выведен на консоль в тот момент, когда C++
приложение запускает это?
Задача ещё не решена.
Других решений пока нет …