我正在努力找到解决问题的方法,但我根本不知道如何解决它.
我正在为我制作的一些程序创建一个用户界面(所以你可以通过简单地按一个按钮启动一个可执行文件).所以我想到了使用qt.
所以我读了很多关于QProcess的内容并尝试使用它.
在我的第一个可执行文件中,我尝试通过QProcess :: start()启动它,但它没有工作,所以我尝试使用QProcess:execute():
QProcess *proc = new QProcess(this);
QDir::setCurrent("C:\\DIRTOTHEEXE\\");
QString program="HELLO.exe";
proc->execute(program);
Run Code Online (Sandbox Code Playgroud)
这完美地执行我的程序并且运行良好.
所以我试着用我的其他exe做同样的事,但它没有用
QProcess *myproc = new QProcess(this);
QDir::setCurrent("C:\\DIRTOTHEEXE\\");
QString program="HelloWorld.exe";
myproc->start(program);
Run Code Online (Sandbox Code Playgroud)
被调用的可执行文件只打印"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;
}
Run Code Online (Sandbox Code Playgroud)