windows – QProcess无法执行外部可执行文件
我正在努力找到解决问题的方法,但我根本不知道如何解决它.
我正在为我制作的一些程序创建一个用户界面(所以你可以通过简单地按一个按钮启动一个可执行文件). 所以我读了很多关于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; } 解决方法
QProcess有3个启动外部流程的功能,例如: –
>开始 后两者,execute和startDetached是静态的,因此不需要QProcess的实例来调用它们. 如果你使用start,你至少应该调用waitForStarted()来正确设置进程. execute()函数将等待进程完成,因此不需要调用waitForStarted. 由于您只发布了少量代码,我们无法确切地看到您之后要做的事情.函数中的代码是否结束,或者您是否正在尝试检索进程的输出?如果是这样,如果使用start(),你肯定应该调用waitForStarted. 如果您只想在不等待它完成的情况下运行该过程,并且您的程序不打算与该过程进行交互,那么请使用startDetached: – QProcess::startDetached("C:DIRTOTHEEXEHELLO.exe"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在XP系统下安装IIS6.0步骤分享
- powershell – 尝试远程访问localhost上的Exchange服务器时
- 如何从PowerShell获取错误代码(ErrorLevel)到Windows命令提
- windows – 将参数传递给psql.exe
- WIX:给予一个文件夹的权限
- windows – 如何从perl启动程序?
- windows – 如何在蓝屏??后获取内存转储
- 当我在Microsoft Windows PC上打开MATLAB [7.0(R14)及更高版
- 如何通过Powershell编辑Active-Directory站点属性?
- 有没有理由使用Windows Server 2003而不是Server 2008?