- 注意事项
假设有程序A、程序B和数据库D。B使用了数据库D(调用时使用了相对路径)且与D在同一目录下。
直接运行B时,能够正确访问数据库D,而当由A调用B时,B启动后却无法正常访问数据库D。出现这个问题的原因是被A调用的B相当于在A的目录下执行,即在A的同一目录下,B无法找到D。
要避免出现上述的问题有以下3个方法:
1. 在B中对数据库的访问使用绝对路径
2. 把A、B两个程序的执行目录合并(对于上述例子来说就是把A、B、D三个文件置于同一目录)
3. 把数据库D拷贝到A的同一目录下
推荐采用方法2,合并后的目录可作为一个整体,移动到任意目录下都能正常运行,同时也便于管理。
1. 在B中对数据库的访问使用绝对路径
2. 把A、B两个程序的执行目录合并(对于上述例子来说就是把A、B、D三个文件置于同一目录)
3. 把数据库D拷贝到A的同一目录下
推荐采用方法2,合并后的目录可作为一个整体,移动到任意目录下都能正常运行,同时也便于管理。

在Qt中调用外部程序时,如果遇到路径问题导致无法访问资源,可以采取使用绝对路径、合并程序执行目录或拷贝资源到主程序目录的方法。同时,了解C语言的缓冲机制对获取程序标准输出至关重要,例如使用fflush刷新缓冲区。QProcess提供非阻塞和阻塞方式调用外部程序,结合信号槽进行错误处理和结果接收。
最低0.47元/天 解锁文章
4114

被折叠的 条评论
为什么被折叠?



