QProcess setEnvironment не имеет никакого эффекта?
Вопрос
Я пытаюсь запустить программу с использованием QProcess (Qt4.4 на vista64bit, разрабатывается в MSVC2005). Программа не находится в пути, поэтому я попытался добавить каталог, в котором находится программа, в среду QProcess, способом, подобным тому, что продемонстрировано в документации QProcess :: setEnvironment .
К сожалению, программа не запускается, очевидно, потому что исполняемый файл не может быть найден в пути. Это известная проблема? Я делаю что-то не так?
Я проверил, что путь установлен, напечатав среду QProcess после добавления пути. Р>
Есть два обходных пути: первый - запустить программу с полным путем, второй - добавить каталог в путь перед запуском исполняемого файла, но я тоже не хочу его использовать.
Решение
QProcess :: setEnvironment () влияет только на среду вызываемого процесса, но не на контекст, в котором обрабатывается порождение. Вам нужно изменить текущую среду, чтобы найти приложение, которое вы порождаете (используя для начала :: SetEnvironmentVariable ()).
Поиск файла приложения описан в документации CreateProcess API.
Проверьте этот указатель для примера сценария.