在开发程序时配置了系统环境,但是没有重新启动VS+Qt的环境,导致调用外部的exe程序时异常退出。关闭VS并重新启动,程序可以正常调用外部程序exe。
ps:
当cmd.exe可以正常调用时,考虑到可能是由于环境变量导致的,分别输出环境变量进行比对,即可确认问题!!!
cmd.exe:
输入set,把path的配置复制出来。
Qt:
LPWSTR envStrings = GetEnviromentStrings();
if (envStrings != NULL){
LPWSTR currentEnv = envStrings;
while(*currentEnv) {
wprintf(L"%s\n", currentEnv);
QString envString = QString::fromWCharArray(currentEnv);
qDebug() << envString;
currentEnv += lstrlenW(currentEnv) + 1;
}
FreeEnviromentStrings(envStrings);
}
// 获取环境变量 QStringList envStrings = QProcess::systemEnvironment(); // 输出环境变量 foreach (QString envString, envStrings)
{
qDebug() << envString;
}