【问题标题】:Problem launching external executable from Win32 application从 Win32 应用程序启动外部可执行文件时出现问题
【发布时间】:2011-08-26 12:49:33
【问题描述】:

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

任何帮助将不胜感激。 法鲁克-

【问题讨论】:

  • 您确定 loader.exe 与您的应用程序可执行文件位于同一路径(应用程序可执行文件的路径不是项目或源代码文件的路径 - 它必须是 bin/Debug 或 Release 取决于根据您的配置)

标签: visual-studio winapi mfc shellexecute


【解决方案1】:

嗯,错误 0x2 是 ERROR_FILE_NOT_FOUND

好像找不到“loader.exe”

【讨论】:

    【解决方案2】:

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

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

    我猜它找不到 loader.exe。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2017-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-27
        • 2021-07-16
        相关资源
        最近更新 更多