跳转到内容

DLL 缺失与 0xc000007b:找组件,不要下载 DLL

核验于 3 分钟阅读

按位数、运行库家族和组件存储诊断 DLL 缺失与 0xc000007b,并说明为什么从随机网站下载 DLL 是错的。

测试环境Enterprise LTSC 2024 · 版本号 26100.1742 · x64
E2
版本号
26100.1742
版本
Enterprise LTSC 2024
架构
x64
支持
实验室(DLL 路径)
证据
E2实验室复现
风险
R1可回滚设置
核验日期
2026-10-28
测试机
PVE 9.2.2 VM 361;Windows 11 Enterprise LTSC 2024 26100.1742;官方 VC++ 2015-2022 Redistributable x64 + x86
页面类型
排障

缺 DLL 是依赖问题,不是文件问题。装拥有这个 DLL 的官方运行库,或修复组件存储。从“DLL 修复站”下载单个 DLL,是 malware 和版本冲突的常见入口。

症状 大概率归属 第一步
0xc000007b 32 位程序加载 64 位 DLL(或相反) 查程序架构和 DLL 目录
0xc0000135 .NET Framework 或托管依赖缺失 安装对应 .NET 版本
vcruntime140.dll / msvcp140.dll Visual C++ 2015–2022 运行库 同时装官方 x64 和 x86
d3dx9_43.dll DirectX 9 旧运行库(常见于老游戏) 装 DirectX End-User Runtime
api-ms-win-crt-*.dll Universal C Runtime(Win10/11 组件) sfc / DISM,再跑 Windows Update
xinput1_3.dll DirectX/XInput 旧组件 DirectX End-User Runtime
终端(管理员)
终端窗口
# 托管程序可这样看;原生程序用任务管理器 → 详细信息 → 平台,或 sigcheck -nobanner -a
$p = 'C:\Path\To\Game.exe'
[System.Reflection.AssemblyName]::GetAssemblyName($p)

32 位游戏不能加载 System32 里的 64 位 DLL;它从 SysWOW64 加载。混用就会得到 0xc000007b。

预期结果: 程序和 DLL 的位数一致:x64/x64 或 x86/x86。

终端(管理员)

在管理员终端运行:

终端窗口
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow

SFC 报“无法修复某些文件”时,先跑 DISM。重启后再试程序。

预期结果: 两条命令都完成,且没有“无法修复”错误。

终端(管理员)
  • Visual C++ 2015–2022:从微软装 x64 和 x86。
  • DirectX 9 旧组件:DirectX End-User Runtime。
  • .NET:装程序目标的大版本(Framework 3.5/4.8,或 .NET 6/8 桌面运行时)。

预期结果: 程序启动,不再弹缺失 DLL。

设置

事件查看器 → Windows 日志 → 应用程序。找 SideBySide(程序集版本冲突)或 Application Error(出错模块)。版本冲突不是“复制一个更新的 DLL”能修的。

预期结果: SideBySide 或模块加载错误指出具体模块。

实验室核对:缺失 VC++ 运行库(E2)

Section titled “实验室核对:缺失 VC++ 运行库(E2)”

全新 LTSC 26100.1742:

  • C:\Windows\System32\vcruntime140.dll、msvcp140.dll:不存在。
  • C:\Windows\SysWOW64\vcruntime140.dll、msvcp140.dll:不存在。
  • 只有 CLR 变体 vcruntime140_clr0400.dll、vcruntime140_1_clr0400.dll;那不是 VC++ 2015–2022 运行库。
中文 LTSC 26100 实验室的 PowerShell 输出:System32 与 SysWOW64 下的 vcruntime140.dll 均提示路径不存在。
VM 360(中文 Enterprise LTSC 2024,26100.1742)修复前:System32 与 SysWOW64 的 vcruntime140.dll 都不存在。页面下方表格是同一路径在官方 VC++ 安装后的结果。点击查看原图。

安装官方 Visual C++ 2015–2022 Redistributable(aka.ms/vs/17/release 的 vc_redist.x64.exe 与 vc_redist.x86.exe),退出码均为 0。安装后:

路径 版本 大小
System32\vcruntime140.dll 14.44.35211.0 124,544
System32\msvcp140.dll 14.44.35211.0 557,728
SysWOW64\vcruntime140.dll 14.44.35211.0 91,216
SysWOW64\msvcp140.dll 14.44.35211.0 447,616

DISM /Online /Cleanup-Image /CheckHealth:No component store corruption detected。

SFC /verifyonly 完成,但报告 Windows Resource Protection found integrity violations;细节在 C:\Windows\Logs\CBS\CBS.log,这次没有执行修复。不要把“SFC 发现违规”直接当成病毒或 DLL 位数问题,也不要指望 SFC 能补回缺失的 VC++ 运行库。

这次验证的是缺失运行库路径和官方修复;没有复现 0xc000007b 弹窗、破解 DLL 或位数错配,这几种仍是未验证。

  1. 位数不匹配——最常见。
  2. 破解或被替换的 DLL——加载器拒绝,或程序稍后崩溃。
  3. 组件存储损坏——DISM/SFC 是修复路径。
  4. 缺 Visual C++ 运行库——装 redist,不要装单个 DLL。
  5. 游戏 overlay 或反作弊注入了错位数的模块——先关 overlay 再测。
  • 不要在 System32 和 SysWOW64 之间复制 DLL。
  • 厂商没说它是 COM 组件,就不要用 regsvr32 注册 DLL。
  • 不要为了跑 loader 关掉 Defender。
  • 不要跟着视频装“DLL 合集”;合集本身就是攻击面。

来源