我正在努力寻找解决问题的方法,但我根本不知道如何解决它。
我正在为我制作的一些程序创建一个用户界面(所以你可以通过简单地按下一个按钮来启动一个可执行文件)。所以我想到了使用qt。
所以我阅读了很多关于 QProcess 的内容并尝试使用它。
在我的第一个可执行文件中,我尝试通过 QProcess::start() 启动它,但它不起作用,所以我用 QProcess:execute() 尝试了它:
QProcess *proc = new QProcess(this);
QDir::setCurrent("C:\\DIRTOTHEEXE\\");
QString program="HELLO.exe";
proc->execute(program);
这完美地执行了我的程序并且运行良好。
所以我尝试对我的其他 exe 执行相同的操作,但没有成功
QProcess *myproc = new QProcess(this);
QDir::setCurrent("C:\\DIRTOTHEEXE\\");
QString program="HelloWorld.exe";
myproc->start(program);
被调用的可执行文件简单地打印“Hello World”并返回 0。
所以现在我的问题是:什么可能导致这种行为,为什么我不能将 QProcess::start() 用于第一个可执行文件?
顺便说一句:我也尝试将 workingDirectory() 设置为 exe 的路径,但也没有用。
希望可以有人帮帮我。
编辑:所以程序被执行,但在打印出一行后立即崩溃。
编辑:这里是 HelloWorld 源代码。
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
cout<<"HELLO WORLD!!"<<endl;
return 0;
}