gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 01:20:22 27 4
gpt4 key购买 nike

我有一个在 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# 控制台应用程序中运行 C++ 控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4947043/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com