问题描述:
程序A通过QProcess
启动另一个应用程序B,结果程序B出现初始化失败或错误。
原因:
根本原因就是程序B加载配置文件出错了。
具体分析:
程序A和程序B不在同一目录,且程序B启动时需读取配置文件,还是通过相对路径读取的(这是常规做法,因为配置文件通常和应用程序放在一起)。
假设程序A位于D:\A1\A.exe
,程序B位于D:\B2\B.exe
。
程序A通过QProcess
启动程序B(此时B的工作路径是D:\A1目录),程序B启动后在D:\A1目录下找配置文件,但是实际在D:\B2目录下。所以就找不到配置文件,所以初始化失败。
解决方法:
通过QProcess
的setWorkingDirectory
函数设置程序B的工作路径。