J'essaie de compiler le code hérité de Windows XP sous un nouvel environnement dans Windows 7. Il compile mais échoue lors de l'exécution.CreateProcess échoue sous Windows 7
CreateProcess() retourne 0 et GetLastError() renvoie 2, qui signifie ERROR_FILE_NOT_FOUND
Voici mon appel à CreateProcess
STARTUPINFO StartInfo;
memset(&StartInfo, 0, sizeof(StartInfo));
wcsncpy(astrCommandLine, L"TFTP", MAX_OSCOMMANDLINE_SZ-1);
BOOL bFuncRetn = CreateProcess(NULL,
astrCommandLine, // command line
NULL, // process security attributes
NULL, // primary thread security attributes
NULL, // handles are inherited
0, // creation flags
NULL, // use parent's environment
NULL, // use parent's current directory
&StartInfo, // STARTUPINFO pointer
&m_ProcInfo); // receives PROCESS_INFORMATION
Maintenant, pour les bizarreries: Quand au lieu de tftp je lance calc, calc apparaît. Je peux exécuter tout ce qui se trouve sur ma ligne de commande à partir de n'importe où dans une invite de commande, ce qui m'indique que le% PATH% de c: \ windows \ system32 est connu et fonctionne correctement.
J'ai essayé de forcer CreateProcessA avec des chaînes ansi mais j'ai obtenu le même résultat. J'ai également essayé dans la configuration de débogage et de libération et à partir de la ligne de commande.
Une idée? Les deux fichiers calc.exe et tftp.exe se trouvent dans c: \ windows \ system32 qui se trouve dans le chemin système. L'exécution de "c: \ windows \ system32 \ tftp" ne fonctionne pas
Est-ce que tftp est trouvé par un chemin d'accès d'application plutôt que par le chemin du système? Cela pourrait expliquer pourquoi calc est trouvé mais tftp ne l'est pas. CreateProcess n'utilise pas les chemins d'accès. Je suppose que vous définissez StartInfo.cb quelque part. –
Il y a très peu d'espoir que cela fonctionne. Sûrement tftp.exe ne se trouve pas dans le répertoire de travail par défaut de votre programme. Calc.exe n'est pas un problème, il est sur le chemin. Passez le chemin d'accès * full * du fichier .exe, comme c: \ foo \ bar \ tfpt.exe. –
Je n'ai jamais entendu parler de StartInfo.cb – Eric