Проблем при стартиране на външен изпълним файл от 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