在C#控制台应用程序中运行c ++控制台应用程序

我有一个在visual studio中运行的c ++控制台应用程序。 这将收集数据并在控制台中显示所有原始数据。

另一个应用程序(C#)用于收集此信息并将其呈现给UI。

是否可以通过将C ++一个放在C#中来将两者结合起来,以便两者同时运行,而C ++应用程序将其信息输出到面板或类似的东西?

谢谢! 🙂

我必须做的一个非常快速的例子就像我之前说的那样:

 private void executeCommand(string programFilePath, string commandLineArgs, string workingDirectory) { Process myProcess = new Process(); myProcess.StartInfo.WorkingDirectory = workingDirectory; myProcess.StartInfo.FileName = programFilePath; myProcess.StartInfo.Arguments = commandLineArgs; myProcess.StartInfo.UseShellExecute = false; myProcess.StartInfo.CreateNoWindow = true; myProcess.StartInfo.RedirectStandardOutput = true; myProcess.StartInfo.RedirectStandardError = true; myProcess.Start(); StreamReader sOut = myProcess.StandardOutput; StreamReader sErr = myProcess.StandardError; try { string str; // reading errors and output async... while ((str = sOut.ReadLine()) != null && !sOut.EndOfStream) { logMessage(str + Environment.NewLine, true); Application.DoEvents(); sOut.BaseStream.Flush(); } while ((str = sErr.ReadLine()) != null && !sErr.EndOfStream) { logError(str + Environment.NewLine, true); Application.DoEvents(); sErr.BaseStream.Flush(); } myProcess.WaitForExit(); } finally { sOut.Close(); sErr.Close(); } } 

当然它并不完美,但它在执行一个powershell脚本时有效,我看到多线文本框中的输出在每次出现新内容时都会更新,更新我的文本框的方法是logMessage()

据我所知,您可以从C#应用程序运行c ++应用程序,在另一个进程中启动它,然后重定向该进程的标准输出,以便您能够以您想要的方式使用它,例如您可以放置​​它它在一个小组中。

听起来你需要从UI应用程序中读取控制台应用程序的stdout 。 本文介绍了如何在C(在Windows上)完成此类事情。 我肯定通过一些研究你会发现如何在C#中做到这一点(因为它是一个操作系统function,而不是语言function)。