QProcess : "Unknown error" when exitCode() != 0
-
Hello everyone,
I develop an application with Qt Creator 4.4.0 (based on Qt 5.9.1) (MVC 2015, 32 bit). I'm on windows 10 x64 and my application is in C++.
This is part of my main function :
void fenetreprincipale::on_boutton_ValiderParametres_clicked(){ argumentsROI = ajoutDesArguments(); if(ui->matrice->isChecked()){ argumentsROI.append("--return_matrix"); } else if(ui->check_seuil->isChecked()){ argumentsROI.append("--threshold="+seuil); } if(lancementDuProgrammeROI()){ if(processusROI.exitCode() == 0){ /*TO DO*/ } else if(processusROI.error() != 0){ QMessageBox::warning(this, "Erreur", "Le programme roi a planté.\n"+statutDeLApplication.number(processusROI.exitStatus())+" : "+processusROI.errorString()); } }
now this is a function i use :
QStringList fenetreprincipale::ajoutDesArguments(){ arguments.clear(); arguments.append("--file="+nomDuFichierSelectionne); arguments.append("--dset="+nomDuJeuDeDonne); arguments.append("--CCD_variance="+variance); arguments.append("--CCD_gain="+gain); return arguments; } bool fenetreprincipale::lancementDuProgrammeROI(){ processusOK = true; processusROI.setProgram(nomDuProgrammeROI); processusROI.setArguments(argumentsROI); processusROI.start(); if(!processusROI.waitForStarted()){ processusOK = false; QMessageBox::warning(this, "Erreur", "Le processus roi n'a pas démarré.\n"+processusROI.errorString()); } else if(!processusROI.waitForFinished()){ processusOK = false; QMessageBox::warning(this, "Erreur", "Le processus roi ne c'est pas terminé.\n"+processusROI.errorString()); } return processusOK; }
here is my class fenetrePrincipale.h :
#ifndef FENETREPRINCIPALE_H #define FENETREPRINCIPALE_H #include <QMainWindow> #include <QFileDialog> #include <QMessageBox> #include <QDir> #include <QProcess> namespace Ui { class fenetreprincipale; } class fenetreprincipale : public QMainWindow{ Q_OBJECT public: explicit fenetreprincipale(QWidget *parent = 0); ~fenetreprincipale(); private slots: void on_boutton_ParcourirFichier_clicked(); void on_boutton_ValiderParametres_clicked(); private: Ui::fenetreprincipale *ui; /*--on_boutton_ValiderParametres_clicked()--*/ QStringList argumentsROI; QStringList ajoutDesArguments(); bool lancementDuProgrammeROI(); /*--creationDUnDossierContenantLesResultat()--*/ QString nomDuFichier_clone; QString nomDuDossierDesResultats; QDir dossierDesResultats; /*--recuperationDesArguments()--*/ QString nomDuJeuDeDonne; QString variance; QString seuil; QString gain; /*--ajoutDesArguments()--*/ QStringList arguments; /*--lancementDuProgrammeROI()--*/ bool processusOK; QProcess processusROI; QString nomDuProgrammeROI = "roi.exe"; }; #endif // FENETREPRINCIPALE_H
My working directory are :
C:\Users\lita6\Documents\Stage\build-ProjetStage-Desktop_Qt_5_9_1_MinGW_32bit-ReleaseI don't understant why my program return :
0 : unknown error
-
@Julie said in QProcess : "Unknown error" when exitCode() != 0:
roi.exe
Is that an Qt exe you call from another qt program?
-
It is not a error at all. Is it creating process ? Which line the code is giving error ?
-
hi @dheerendra ,
When i compile my program there are no error it's only my QMessageBox in main. -
@Julie said in QProcess : "Unknown error" when exitCode() != 0:
cygwin
Does it depend on any external dlls ?
Also, if you run roi.exe in a cmd with same parameters, it does work?
-
Hi
When you run it in Creator it complains about missing platform ?
Then you have a patch issue or installation issue.
It should not happen as Creator setup where the app gets it Qt dlls from. -
Ok, it seems you try to run it OUTSIDE craetor ?
in a deployment folder ?if yes, please see this
http://www.tripleboot.org/?p=138
you need a subfolder called platforms
-
@Julie
STOPBut when run for creator , no Qt dlls should be copied to the build folder.
This is not normal.only foreign dlls like opencv and cyg stuff
Also u also include dlls with D in the end its for debug, but its a release folder.
So i think you somehow made a mess. :)Its very unclear what you are doing.
Deplyment folder (the link) is for other computers. Not running via creator
You dont need it to run via creator.
So since you copied Qt DLLS to build folder, something seems not right for me. -
Hi
Please try
Select Projects, Run Settings, expand the Run Environment, and modify the PATH variable to include the folders for any extra dlls you need. opencv and cyg*
its explained in details in the manual. -
My computer had a problem and I reinstalled windows.
Before my program works but now no.
I only make "open project" in new intallation of Qt.For the dll with "d" i know i see it in other topic. I try to change it but it worked less after.
I add manually the dll and the .exe under the "build-ProjetStage-Desktop_Qt_5_9_1_MinGW_32bit-Release\release" folder.
I read your link
-
@mrjj
I create a new project and i add variables after variables and method after method.
For the moment it's works. (but images are'nt visible now ;( )
I'm going to add the first external .exe.
You think i add it with "Select Projects, Run Settings, expand the Run Environment." ?I really want to say to you thanks for your help.
-
Its hard to say what went bad after you reinstalled windows.
Maybe it had the right paths back then and Creator took them when you installed Qt.
Im not sure about why it stopped working.- but images are'nt visible now
What images ?
You are very welcome. i hope you get it to run again.