CreateProcess не работает под Windows 7

Я пытаюсь скомпилировать устаревший код из 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" не работает

6
задан Charles 10 August 2011 в 03:49
поделиться