简短回答
“计算机中丢失 xxx.dll”说明程序依赖的组件不存在或损坏。正确的做法是安装或修复提供这个 DLL 的组件(VC++ 运行库、DirectX、软件本身),而不是从网上单独下载 DLL 文件。先看 DLL 名字判断属于哪个组件,再对应处理。
按 DLL 名称判断来源
| DLL 名称 | 来自 | 处理 |
|---|---|---|
| msvcp140、vcruntime140、msvcr120 等 | VC++ 运行库 | 安装 VC++ 运行库 |
| d3dx9_xx、d3dcompiler_43、xinput1_3、xaudio2_7 | DirectX 旧组件 | 安装 DirectX 运行时 |
| mfc140u、mfc100 | VC++ 的 MFC 组件 | 安装对应年份的 VC++ 运行库 |
| steam_api64.dll | Steam 游戏组件 | 验证游戏文件;被杀毒软件删除时加白名单后恢复 |
| openal32、physxloader | OpenAL / PhysX 组件 | 安装 OpenAL 或 NVIDIA PhysX 系统软件 |
| 软件自己的 dll(名称包含软件名) | 软件本身 | 修复或重新安装该软件 |
通用处理步骤
- 查看杀毒软件的隔离区,DLL 被误删时恢复并添加信任。
- 修复或重新安装出错的软件。
- 安装对应的运行库,重启电脑。
- 系统 DLL(如 System32 中的文件)损坏时,以管理员身份运行
sfc /scannow,见 SFC 和 DISM 修复系统。
相关错误代码
- 0xc0000135:找不到所需的 DLL
- 错误 126:找不到指定的模块
- 0xc000007b:32 位和 64 位 DLL 混用
- 0xc0000142:DLL 初始化失败
提示:网上的单独 DLL 下载站风险很高:版本不匹配会导致 0xc000007b,部分站点还会捆绑木马。
常见问题
DLL 文件放在哪里?
由安装程序决定。手动复制 DLL 到 System32 是常见的错误做法,容易引起新问题。
regsvr32 注册 DLL 有用吗?
只对 COM 组件(ocx、部分 dll)有效,运行库类 DLL 不需要注册,注册也会失败。