从Win32应用程序启动外部可执行文件的问题

时间:2011-08-26 12:49:33

标签: visual-studio winapi mfc shellexecute

我正在尝试从我的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应用程序位于同一个文件夹中。

任何帮助都将受到高度赞赏。 法鲁克 -

3 个答案:

答案 0 :(得分:2)

好吧,错误0x2是ERROR_FILE_NOT_FOUND

看起来找不到“loader.exe”

答案 1 :(得分:1)

错误2是“找不到文件”:

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

我猜它找不到loader.exe。

答案 2 :(得分:0)

将loader.exe放在搜索路径中的某个位置,或提供完整路径。这是如何避免此文件未找到错误。 Windows错误代码都记录在MSDN上。