Domanda

Sto cercando di avviare un programma usando QProcess (Qt4.4 su vista64bit, in via di sviluppo in MSVC2005). Il programma non è nel percorso, quindi ho provato ad aggiungere la directory in cui si trova il programma all'ambiente QProcess, in un modo simile a quello che viene dimostrato nella documentazione di QProcess :: setEnvironment .

Sfortunatamente il programma non si avvia, apparentemente perché l'eseguibile non può essere trovato nel percorso. È un problema noto? Faccio qualcosa di sbagliato?

Ho verificato che il percorso viene impostato stampando l'ambiente QProcess dopo aver aggiunto il percorso.

Esistono due soluzioni alternative: la prima è avviare il programma con il percorso completo, la seconda è aggiungere la directory al percorso prima di avviare l'eseguibile, ma non voglio usare neanche.

È stato utile?

Soluzione

QProcess :: setEnvironment () influisce solo sull'ambiente del processo generato, non sul contesto in cui viene gestita la generazione. È necessario modificare l'ambiente corrente in modo da poter trovare l'app che si sta generando (usando :: SetEnvironmentVariable () per cominciare).

La ricerca del file dell'applicazione è descritta nella documentazione di CreateProcess API.

Controlla questo puntatore per uno scenario di esempio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top