gpt4 book ai didi

c# - C# 和 Delphi 之间的管道,如何让它工作?

转载 作者:太空宇宙 更新时间:2023-11-03 16:25:02 25 4
gpt4 key购买 nike

我有一个用 Delphi 编写的控制台应用程序 (Host.exe)。它接受 stdin readln 和 writeln 对 stdout 的响应。现在,我想在 C# 应用程序中以 C# 为 Host.exe 输入并从 Host.exe 获取输出的方式使用 Host.exe理想情况下,我编写了下面的代码,但它不起作用:它卡在 outputReader.ReadLine() 的某处;

System.IO.File.WriteAllText(tmp, vbs);

Process pProcess = new Process();

pProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;

//strCommand is path and file name of command to run
pProcess.StartInfo.FileName = @"Host.exe";
pProcess.StartInfo.Arguments = "\"runa " + tmp +"\"";
// runs script file tmp in background
pProcess.StartInfo.CreateNoWindow = true;
pProcess.StartInfo.UseShellExecute = false;
pProcess.StartInfo.RedirectStandardOutput = true;
pProcess.StartInfo.RedirectStandardInput = true;
pProcess.StartInfo.RedirectStandardError = true;

pProcess.Start();

StreamWriter inputWriter = pProcess.StandardInput;
StreamReader outputReader = pProcess.StandardOutput;

while (true)
{
inputWriter.WriteLine("getmsg");
inputWriter.Flush();
string s = outputReader.ReadLine(); // then do something with it

inputWriter.WriteLine("progressglobal");
inputWriter.Flush();

string p = outputReader.ReadLine();
if (p == "100")
{
break;
}
Application.DoEvents();
Thread.Sleep(1000);
}
inputWriter.WriteLine("exit");
inputWriter.Flush();
pProcess.WaitForExit();

非常感谢您提前提出任何建议!

最佳答案

你读了两遍:

string s = outputReader.ReadLine();

string p = outputReader.ReadLine();

似乎您只需要最后一行,因为未使用变量 s

关于c# - C# 和 Delphi 之间的管道,如何让它工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12852446/

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