Après les HANDLE, CreateProcess.
tabtemp est initialisé ailleurs, mais vaut "dir" au moment du lancement de CreateProcess (merci cout).
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 int error = 0; Process *process; PROCESS_INFORMATION *pi = new PROCESS_INFORMATION; STARTUPINFO si = {sizeof(si)}; if (!error) { // Build arguments StringBuffer tab; for(int i = 0; i < args.count() ; i++) tab << args[i]; char tabtemp[tab.length() +1]; strcpy(tabtemp,tab.toString().chars()); cout << tabtemp << GetLastError() << io::endl; // Launch process if(CreateProcess(tabtemp,NULL,0,0,TRUE,0,0,0,&si,pi) == 0) error = GetLastError(); cout << "error = " << error << io::endl; process = new Process(pi); } // Return the result if(error) throw new SystemException(error, "process building"); else return process;
En sortie du terminal, j'ai
Donc le dernier code d'erreur était 12 ERROR_INVALID_ACCESS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 dir12 error = 2 terminate called after throwing an instance of 'elm::system::SystemException*' This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.
avant le lancement de CreateProcess, et avec le lancement de CreateProcess il passe à 2 ERROR_FILE_NOT_FOUND, bref l'appel à CreateProcess échoue.
Mais je vois pas trop pourquoi ni comment :s
Partager