Pregunta

Estoy intentando iniciar un programa usando QProcess (Qt4.4 en vista64bit, desarrollándose en MSVC2005). El programa no está en la ruta, así que intenté agregar el directorio en el que se encuentra el programa al entorno QProcess, de forma similar a lo que se demuestra en la documentación de QProcess :: setEnvironment .

Lamentablemente, el programa no se inicia, aparentemente porque no se puede encontrar el ejecutable en la ruta. ¿Es este un problema conocido? ¿Hago algo mal?

He verificado que la ruta se establece imprimiendo el entorno QProcess después de agregar la ruta.

Hay dos soluciones: la primera es iniciar el programa con la ruta completa, la segunda es agregar el directorio a la ruta antes de iniciar el ejecutable, pero no quiero usar ninguno.

¿Fue útil?

Solución

QProcess :: setEnvironment () solo afecta el entorno del proceso que se está generando, no el contexto en el que se maneja el desove. Debe modificar el entorno actual para que pueda encontrar la aplicación que está generando (usando :: SetEnvironmentVariable () para empezar).

La búsqueda de archivos de aplicación se describe en la documentación de CreateProcess API.

Marque este puntero para un escenario de ejemplo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top