You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ShellExecute调用mame64.exe部分指令无返回结果问题咨询

排查ShellExecute调用MAME -createconfig无反应的问题

我之前也碰到过类似用ShellExecute调用MAME命令的坑,尤其是这类不直接输出到控制台的指令,给你几个实用的排查方向:

  • 先确认指令本身的行为:-createconfig这个参数的作用是静默生成MAME的配置文件(默认是mame.ini),它本身就不会在控制台输出任何内容!你之前看到-listfull有结果,是因为这个参数会强制输出游戏列表到控制台,但-createconfig是后台写文件,所以你得去MAME的安装目录下找mame.ini,看看它有没有被创建或者更新——说不定指令已经成功执行了,只是你没找对地方。

  • 检查权限与路径问题:

    • 如果你的程序是普通权限运行,而MAME装在系统保护目录(比如C:\Program Files),那-createconfig可能因为没有写入权限失败。试试把MAME移到非系统目录(比如D:\MAME),或者给你的程序提权后再调用。
    • 确保调用ShellExecute时用的是mame64.exe的绝对路径,避免因为当前工作目录不对导致找不到程序,看起来像是“无反应”。
  • 验证参数传递是否正确:
    检查你拼接的参数有没有拼写错误,比如是不是把-createconfig写成了-create-config?另外,ShellExecute的参数格式要注意,比如如果路径里有空格,要给路径加引号,比如:

    ShellExecute(NULL, L"open", L"D:\\MAME Folder\\mame64.exe", L"-createconfig", NULL, SW_HIDE);
    
  • 换用更可控的CreateProcess替代ShellExecute:
    ShellExecute更适合启动关联程序,对于需要确认执行状态、捕获输出的场景,CreateProcess是更好的选择。它能让你明确知道进程是否启动成功,还能获取退出码判断执行结果。比如这个简单的C++示例:

    STARTUPINFO si = { sizeof(STARTUPINFO) };
    PROCESS_INFORMATION pi;
    // 注意第二个参数要包含程序名和参数,或者第一个参数用NULL,第二个参数传完整命令行
    BOOL isSuccess = CreateProcess(
        L"D:\\MAME\\mame64.exe",
        L"mame64.exe -createconfig",
        NULL, NULL, FALSE, 0, NULL, L"D:\\MAME", &si, &pi
    );
    
    if (isSuccess) {
        // 等待进程执行完成
        WaitForSingleObject(pi.hProcess, INFINITE);
        DWORD exitCode;
        GetExitCodeProcess(pi.hProcess, &exitCode);
        if (exitCode == 0) {
            // 执行成功,去检查mame.ini
            MessageBox(NULL, L"配置文件生成成功!", L"提示", MB_OK);
        } else {
            // 执行失败,exitCode可能对应MAME的错误码
            MessageBox(NULL, L"生成配置文件失败!", L"错误", MB_OK);
        }
        // 记得关闭句柄
        CloseHandle(pi.hProcess);
        CloseHandle(pi.hThread);
    } else {
        MessageBox(NULL, L"无法启动MAME程序!", L"错误", MB_OK);
    }
    

先从检查mame.ini是否存在开始排查,大概率是你误以为指令没执行,其实已经生成文件了~

内容的提问来源于stack exchange,提问作者azrael11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:10:24