JeremyLecouvert
Messages postés139Date d'inscriptionmardi 27 novembre 2007StatutMembreDernière intervention10 mai 2010
-
25 avril 2008 à 13:15
JeremyLecouvert
Messages postés139Date d'inscriptionmardi 27 novembre 2007StatutMembreDernière intervention10 mai 2010
-
28 avril 2008 à 12:35
Bonjour tout le monde,
J'ai un pti souci avec la fonction CreateProcess, et je comprends pas où ça
coince!
Voilà le topo: mon appli est composée de 3 classes java et d'un
"lanceur" développé en Delphi (BDS 2006). Chacun des 3
traitements est lancé par un appel à CreateProcess, mais l'un des 3 ne marche
pas comme je veux, alors qu'il est construit de la même manière que les 2
autres. Voici mon code:
Le problème, c’est qu’il génère à chaque fois une erreur, et
le GetLastError me renvoie l’optimiste message « Opération réussie » ??? -> Je suppose que l’opération en
question, c’est le plantage de la fonction .. sinon, j’vois pas ce qui a
réussi !!
En tout cas, le problème ne vient pas de la ligne de
commande, parce qu’elle s’exécute bien quand je la lance directement dans le
DOS. Du coup, je sais vraiment plus ce que je peux faire pour que ça marche, surtout
que pour les 2 autres process ça marche nickel…
JeremyLecouvert
Messages postés139Date d'inscriptionmardi 27 novembre 2007StatutMembreDernière intervention10 mai 20102 28 avril 2008 à 12:35
Salut tout le monde,
ça y est, ça marche... merci fOxi! Ceci dit, je suis pas sûr de savoir pourquoi !!
Pour le 'pi', je l'ai changé en 'pInfo'; ça ne créait pas de conflit, mais tu as raison, il vaut être rigoureux ça évite les soucis..
Pour les types PChar et PAnsiChar, je n'ai pas l'habitude de les utiliser; je ne sais pas si il y des différences selon si on utilise l'un ou l'autre. D'après l'aide Delphi, C'est équivalent sous Win32...
Bizarrement, si j'exécute le code:
CreateProcess(nil, PChar(cmd), nil, nil, False, 0, nil, nil, si, pInfo);
Ca marche nickel. Par contre, si je déclare un PChar et que je fais:
pCmd:= PChar(cmd); CreateProcess(nil, PChar(cmd), nil, nil, False, 0, nil, nil, si, pInfo);
Cette fois, j'ai la même erreur que la dernière fois, ou l'erreur "accès refusé". Pourtant, je ne me sers même pas de 'pCmd'... on dirait que le simple fait de faire l'affectation modifie 'cmd'... Chais pas keskispass !!
Si quelqu'un peut apporter ses lumières à mon petit cerveau embrumé, je suis preneur !!
En tout cas, je valide ta réponse puisque mon pb est résolu ..
@+