• 307阅读
  • 6回复

[提问]qprocess嵌套调用遇到的问题 [复制链接]

上一主题 下一主题
离线砍猪佩琪
 

只看楼主 倒序阅读 楼主  发表于: 05-13
1.用qprocess类中的startdetached函数调用了一个fortran控制台程序(记为A.exe),这个控制台程序本身还需要调用另一个文件(记为B.sct),调用方法就是直接在控制台命令行输入B.sct就可以了。
现在遇到的问题是我在外部直接手动打开A程序,然后在命令行输入B.sct,整个程序是可以正常运行的,但是我在qt中通过startdetached函数打开A程序后再在命令行输入B.sct,发现A程序总是闪退,程序无法继续运行了,希望大神指点一下
2.还有另一个方法是start函数,这个我也试过,但是他是在后台运行的,也就是说我看不到控制台界面,也就没法输入命令行参数,后来通过write函数向控制台中写入B.sct,结果是毫无反应,A程序也不出结果。
以上两种方法都失败了,求大神帮忙看看咯
离线dbzhang800

只看该作者 1楼 发表于: 05-13
用QProcess时,你的A.exe的工作目录是你的 B.sct 所在目录吗?
离线砍猪佩琪

只看该作者 2楼 发表于: 05-14
回 dbzhang800 的帖子
dbzhang800:用QProcess时,你的A.exe的工作目录是你的 B.sct 所在目录吗? (2019-05-13 19:04) 

是的,我还特意把B.SCT拷进A的工作目录了,重点是我在外面直接手动打开A的话是一切正常的
离线青空飞羽

只看该作者 3楼 发表于: 05-14
你用QProcess的setWorkingDirectory()设置工作目录了吗?
The process will be started in the directory set by setWorkingDirectory(). If workingDirectory() is empty, the working directory is inherited from the calling process.
3条评分好评度+1金钱+1威望+1
砍猪佩琪 好评度 +1 - 05-14
砍猪佩琪 威望 +1 - 05-14
砍猪佩琪 金钱 +1 - 05-14
离线dbzhang800

只看该作者 4楼 发表于: 05-14
回 砍猪佩琪 的帖子
砍猪佩琪:是的,我还特意把B.SCT拷进A的工作目录了,重点是我在外面直接手动打开A的话是一切正常的 (2019-05-14 09:01) 

你是不是分不太清两个概念:工作目录 与 可执行程序所在目录
4条评分好评度+1贡献值+1金钱+1威望+1
砍猪佩琪 好评度 +1 - 05-14
砍猪佩琪 贡献值 +1 - 05-14
砍猪佩琪 威望 +1 - 05-14
砍猪佩琪 金钱 +1 - 05-14
离线砍猪佩琪

只看该作者 5楼 发表于: 05-14
回 dbzhang800 的帖子
dbzhang800:你是不是分不太清两个概念:工作目录 与 可执行程序所在目录 (2019-05-14 09:38) 

啊大神,你真是一语点醒我,我确实搞混了这两者,十分感谢
离线砍猪佩琪

只看该作者 6楼 发表于: 05-14
回 青空飞羽 的帖子
青空飞羽:你用QProcess的setWorkingDirectory()设置工作目录了吗?
The process will be started in the directory set by setWorkingDirectory(). If workingDirectory() is empty, the working directory is inherited from the calling process. (2019-05-14 09:09) 

确实没用这个函数设置路径,原先一直把进程的路径和主程序所在的文件路径当成一回事了,谢谢大神指点呀
快速回复
限100 字节
 
上一个 下一个