Проблема с запуском внешнего исполняемого файла из приложения Win32

Я пытаюсь запустить внешнее приложение из своего приложения Win32, но это не удается. Ниже приведен код, который я использую:

HINSTANCE instance = ShellExecute(NULL, _T("open"), _T("loader.exe"), NULL, NULL, SW_SHOWNORMAL);
if((int)instance <= 32)
{
    _cprintf("Error = 0x%X\n", GetLastError());
    return 0;
}

Я получаю значение экземпляра 0x00000002, а GetLastError возвращает 0x2. Тот же код работает, когда я пытаюсь запустить другие приложения, такие как iTunes.exe или cmd.exe. Это как-то связано с внешним приложением? Кстати, приложение win32 и приложение loader.exe находятся в одной папке.

Любая помощь будет высоко ценится. Фарук-


person Farooq Zaman    schedule 26.08.2011    source источник
comment
Вы уверены, что loader.exe находится по тому же пути, что и исполняемый файл ваших приложений (путь исполняемого файла приложений НЕ является путем к файлам проекта или исходного кода - это должен быть bin / Debug или Release в зависимости от вашей конфигурации)   -  person Arun    schedule 27.08.2011


Ответы (3)


Поместите loader.exe где-нибудь в пути поиска или укажите полный путь. Вот как можно избежать ошибки «Этот файл не найден». Все коды ошибок Windows задокументированы на MSDN.

person David Heffernan    schedule 26.08.2011

Что ж, ошибка 0x2 - это ERROR_FILE_NOT_FOUND

Похоже, не может найти "loader.exe"

person Justin    schedule 26.08.2011

Ошибка 2: «Файл не найден»:

http://msdn.microsoft.com/en-us/library/ms681382(v=vs.85).aspx

Я предполагаю, что он не может найти loader.exe.

person JohnD    schedule 26.08.2011