Kangourou_Nomade
Messages postés92Date d'inscriptionjeudi 21 avril 2005StatutMembreDernière intervention16 janvier 2007
-
12 mai 2006 à 15:44
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
1 déc. 2008 à 19:54
Bonjour,
J'ai un petit probleme de CreateProcess sour dev c++ que je n'ai pas avec le meme code en compilant sous visual :
sous visual pour spawner un cmd je fais :
CreateProcess(NULL, LPTSTR("cmd.exe"), NULL, NULL, TRUE, 0, NULL, NULL, &_si, &_pi);
et ca marche tres bien.
La meme ligne pour dev c++ fait crasher le programme.
si je fais :
CreateProcess(LPTSTR("cmd.exe"), NULL, NULL, NULL, TRUE, 0, NULL, NULL, &_si, &_pi);
ca ne crash pas mais ca ne fais rien.
Si quelqu'un a la ligne de code qui va bien ou des trick & tips pour m'aider....
Merci d'avance.
Jah bless my code
Kangourou_Nomade
Messages postés92Date d'inscriptionjeudi 21 avril 2005StatutMembreDernière intervention16 janvier 2007 13 mai 2006 à 01:37
Non ce n'est pas une erreur dans le post. Je me suis mal exprimé :
J'ai mis cette ligne dans dev c++ (parce qu'elle marche sous visual) :
CreateProcess(NULL, LPTSTR("cmd.exe"), NULL, NULL, TRUE, 0, NULL, NULL, &_si, &_pi);
et elle fait carrément crasher le programme en compilant sous dev.
En tatonnant et en testant plein de trucs j'au que en mettant
CreateProcess(LPTSTR("cmd.exe"), NULL, NULL, NULL, TRUE, 0, NULL, NULL, &_si, &_pi);
ca ne crash pas, mais ca ne fait pas le createprocess sur le cmd.
Jah bless my code
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 1 déc. 2008 à 19:53
Salut,
Le topic est vieux, mais bon...
Je cite la doc de CreateProcess :
<hr size= "2" width="100%" />The Unicode version of this function, <!----> CreateProcessW , can modify the contents of this string. Therefore, this parameter cannot be a pointer to read-only memory (such as a const variable or a literal string). If this parameter is a constant string, the function may cause an access violation.
<hr size ="2" width="100%" />Faut donc copier "cmd.exe" dans un tampon (par exemple : TCHAR* maCommande[20]) avec par exemple (aussi !) lstrcpy, puis passer le tampon à CreateProcess.