C++ 使用Qt执行exe

C++ 使用Qt执行exe,c++,qt,user-interface,exe,C++,Qt,User Interface,Exe,我正在尝试执行一个相对简单的exe(需要一些输入),它是用VS生成的。 使用QProcess: QProcess *process = new QProcess(this); QDir::setCurrent(entire_path); process->start(exe_name, QStringList() << ""); // for empty args QProcess*process=新的QProcess(此); QDir::setCurrent(整个_路径);

我正在尝试执行一个相对简单的exe(需要一些输入),它是用VS生成的。 使用QProcess:

QProcess *process = new QProcess(this);
QDir::setCurrent(entire_path);
process->start(exe_name, QStringList() << ""); // for empty args
QProcess*process=新的QProcess(此);
QDir::setCurrent(整个_路径);
进程->开始(exe_name,QStringList()您应该使用

由于
QProcess
类被设计为
QIODevice
(它继承
QIODevice
),
QProcess
控制启动的本机进程,删除
QProcess
实例会导致本机进程终止

更新

要从Windows GUI进程检索输出,根据Qt文档,您可能可以使用
QProcess::SeparateChannels
。从Qt文档:

注意:Windows故意仅抑制GUI的输出 应用程序到继承的控制台。这不适用于输出 重定向到文件或管道。仅转发GUI的输出 尽管控制台上的应用程序如此,您必须使用分离通道 并通过读取输出并将其写入来进行转发 适当的输出通道


“exe_name”是GUI程序还是命令行程序?谢谢,它可以工作,但我没有提到的是,我想使用setStandardInputFile和setStandardInputFile方法,这样我就可以测试我的程序了。使用标准的详细方法我无法做到这一点。如果我理解正确,OPs程序是命令行程序,他永远不会使用显示程序。是否正确?可能是这样,因为您正在生成进程,但没有终端进程。可能您必须执行“cmd.exe/c”请看:是的,BenjaminMurer,就是这样,但如果我使用它,我如何才能将输入和输出获取到文件或其他文件?N1Light,谢谢,但它也可以从文件获取输入吗?你应该试试,我自己没有试过。我想知道如何通过cmd.exe实现此功能。作为可能的解决方案,你可以使用调用PowerShell实现了从文件中输入过程标准。