Probleme de CreateProcess sous dev C++

Kangourou_Nomade Messages postés 92 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 16 janvier 2007 - 12 mai 2006 à 15:44
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Derniè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

9 réponses

nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
12 mai 2006 à 18:41
Tu n'aurait pas inversé le premier et le deuxième paramètre par hasard ?
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
12 mai 2006 à 19:01
J'avais remarqué aussi mais je suppose que c'est une erreur dans le post.

___________________________________________
Les plus grands esprits trouvent toujours une solution
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
12 mai 2006 à 21:26
Je ne connaissait pas la macro LPTSTR. A quoi sert-elle ?
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
12 mai 2006 à 22:59
LPSTR = char *
LPWSTR = unsigned short *
LPTSTR = LPSTR ou LPWSTR dépendant si UNICODE est définis ou non.

___________________________________________
Les plus grands esprits trouvent toujours une solution

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Kangourou_Nomade Messages postés 92 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 16 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
Kangourou_Nomade Messages postés 92 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 16 janvier 2007
13 mai 2006 à 01:40
en fait clairement, si quellqu'un a une source d'un createprocess qui marche avec dev c++...

Jah bless my code
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
13 mai 2006 à 09:04
Utilise la macro TEXT ou _T à la place de LPTSTR, car je n'ai jamais vu cette macro, et je me demande si ce n'est pas ça...
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
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.
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
1 déc. 2008 à 19:54
(Copier _T("cmd.exe") bien sûr)
Rejoignez-nous