Я пытаюсь скомпилировать устаревший код из Windows XP в новой среде в Windows 7. Он компилируется, но не выполняется во время выполнения.
CreateProcess () возвращает 0, а GetLastError () возвращает 2, что обозначаетERROR_FILE_NOT_FOUND
Вот мой вызов 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
Теперь о странностях: Когда вместо tftp я запускаю calc, выскакивает calc.Я могу выполнить все, что есть в моей командной строке, из любого места в командной строке, поэтому он говорит мне, что% PATH% в c: \ windows \ system32 известен и работает правильно.
Я пытался форсировать CreateProcessA с помощью ansiстроки, но я получил тот же результат.Я также попытался в конфигурации отладки и выпуска и из командной строки.
Любая идея?
РЕДАКТИРОВАТЬ: и calc.exe и tftp.exe находятся в c: \ windows \ system32, который находится всистемный путь.
не работает "c: \ windows \ system32 \ tftp"