影评周公子 2026-05-09 12:30 采纳率: 99.1%
浏览 0
已采纳

启动《黑神话:悟空》报“对不起,有错误发生”常见原因?

启动《黑神话:悟空》时提示“对不起,有错误发生”,常见原因之一是**DirectX 12运行时组件缺失或版本过旧**。游戏强制依赖Win10/11系统下最新版DX12(需KB5034441等累积更新),若系统未安装2023年10月后关键补丁,或显卡驱动未同步更新(如NVIDIA 536.67+/AMD Adrenalin 23.10.1+),将导致D3D12CreateDevice初始化失败,触发该错误。此外,部分用户因禁用Windows图形服务(如GraphicsPerf、D3DSCache)、启用精简版系统(如Tiny11)、或第三方安全软件拦截dxgi.dll/d3d12.dll加载,亦会引发相同报错。建议优先运行微软官方“DirectX End-User Runtime Web Installer”并手动检查Windows Update → 可选更新中的显卡驱动与系统累积更新。
  • 写回答

1条回答 默认 最新

  • 白街山人 2026-05-09 12:30
    关注
    ```html

    一、现象层:错误表征与日志线索定位

    启动《黑神话:悟空》时弹出“对不起,有错误发生”对话框,无堆栈、无错误码(如0x80070002或0x887A0005),属典型D3D12初始化静默失败。需立即捕获dxgi.dlld3d12.dll加载行为——推荐使用Process Monitor(ProcMon)过滤进程名BlackMythWukong.exe,关注NAME NOT FOUNDPATH NOT FOUND结果项,重点筛查%SystemRoot%\System32\d3d12core.dlldxgidebug.dll等DX12核心模块。

    二、依赖层:Windows图形子系统版本契约分析

    • 强制运行时契约:游戏构建于Windows SDK 10.0.22621+(Win11 22H2),要求D3D12CreateDevice必须通过DXGI_ADAPTER_FLAG_NONE路径成功返回ID3D12Device*
    • 关键补丁依赖:KB5034441(2023-10 Cumulative Update)引入ID3D12Device9::CreateCommandQueue兼容性修复,缺失将导致E_NOINTERFACE被静默吞没;
    • 驱动ABI对齐:NVIDIA 536.67+ / AMD Adrenalin 23.10.1+ 首次完整实现D3D12_FEATURE_DATA_D3D12_OPTIONS8查询,旧驱动返回E_INVALIDARG触发游戏断言。

    三、服务层:Windows图形服务链路完整性验证

    执行以下PowerShell命令批量检查关键服务状态:

    Get-Service GraphicsPerf, D3DSCache, Winmgmt, WmiApSrv | 
      Select-Object Name, Status, StartType | 
      Format-Table -AutoSize

    GraphicsPerf(GPU性能计数器服务)或D3DSCache(D3D着色器缓存服务)处于DisabledStopped,需执行:Set-Service D3DSCache -StartupType Automatic; Start-Service D3DSCache

    四、环境层:精简系统与安全软件干扰图谱

    干扰类型典型表现检测命令
    Tiny11 / nLite 系统缺失%WinDir%\System32\dxcore.dlldxgi.dll加载失败dir %WinDir%\System32\dxcore.dll 2>nul || echo MISSING
    火绒/360安全卫士拦截d3d12.dll内存映射,ProcMon中显示ACCESS DENIEDauditpol /get /category:"Detailed Tracking"查DLL注入审计

    五、修复层:标准化处置流程(含自动化脚本)

    1. 运行微软官方DirectX End-User Runtime Web Installer(v9.29.1974.0+);
    2. 手动进入Settings → Update & Security → Windows Update → View optional updates,勾选所有Driver updatesQuality Updates(尤其含KB5034441/KP5037771);
    3. 重置D3D缓存:net stop D3DSCache && net start D3DSCache && dxgi.dll /unregister && dxgi.dll /register
    4. 禁用第三方安全软件实时防护后重试;

    六、验证层:D3D12设备创建诊断工具链

    使用微软D3D12HelloWorld示例(SDK 10.0.22621.2427+)交叉验证:

    // 关键诊断代码段
    ComPtr<ID3D12Device> device;
    HRESULT hr = D3D12CreateDevice(nullptr, D3D_FEATURE_LEVEL_11_0, IID_PPV_ARGS(&device));
    if (FAILED(hr)) {
        printf("D3D12CreateDevice failed: 0x%08X\n", hr); // 输出真实错误码
        // 追加:LogAdapterInfo()枚举所有GPU并打印FeatureLevel支持度
    }

    七、进阶诊断:Mermaid流程图驱动的根因决策树

    graph TD A[启动报错] --> B{ProcMon捕获d3d12core.dll NOT FOUND?} B -->|Yes| C[执行DISM /Online /Cleanup-Image /RestoreHealth] B -->|No| D{dxgi.dll加载返回ACCESS_DENIED?} D -->|Yes| E[关闭安全软件/添加白名单] D -->|No| F{D3D12CreateDevice返回E_NOINTERFACE?} F -->|Yes| G[安装KB5034441+累积更新] F -->|No| H[更新显卡驱动至NVIDIA 536.67+/AMD 23.10.1+]
    ```
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 5月10日
  • 创建了问题 5月9日