首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >运行库缺失,先看弹窗点名的 msvcp140.dll 和已装位数,判断缺哪一类组件

运行库缺失,先看弹窗点名的 msvcp140.dll 和已装位数,判断缺哪一类组件

原创
作者头像
软领
发布于 2026-11-10 09:39:58
发布于 2026-11-10 09:39:58
1740
举报

运行库缺失,多数情况是系统里少了对应的 VC++ 或 .NET 组件,或者 32 位与 64 位只装了其中一边。排查顺序是先看弹窗点名的模块,用它锁定缺失的类别,再核对已装组件的位数,最后才是修复或补齐。走完这 5 步,基本能定位到具体缺的是哪一类。

这类问题基本不用重装系统。主板和硬盘通常都没有问题,耐心排查一遍多半能解决。下面这些做法在 Windows 10/11 上实测可用。

适用系统:Windows 10/11;最后更新:2026-10-09。

同一台电脑,为什么有的软件能开、有的点开就报错

双击某个软件,弹窗跳出来写着:

无法启动此程序,因为计算机中丢失 msvcp140.dll。尝试重新安装该程序以解决此问题。

同一台电脑上另一个软件却能正常打开。类似的报错还常点名 vcruntime140.dll、mfc140u.dll、mscorwks.dll,或者启动时直接弹 0xc000007b。

先弄清报错点的是哪一类组件、程序是 32 位还是 64 位,再决定补什么。这一步做对,能省掉大量盲目重装的时间。

方法1 从弹窗模块名和事件日志定位缺哪一类

报错里点名的模块名决定了缺的是 VC++ 还是 .NET。先分类再动手,方向才不会跑偏。

这两类的补装方式完全不同,所以第一步只看名字,先别急着装东西。要是弹窗一闪而过没看清,可以按 Win+R 输入 eventvwr.msc 打开事件查看器,里面翻到的 SideBySide 记录通常对应并行程序集缺失,写明了缺哪个程序集、程序是 32 位还是 64 位,比记弹窗更准确。

操作步骤:

  1. 先记下弹窗里的模块名:msvcp140、vcruntime140、mfc140u 属 VC++ 运行库,mscorwks、clr 属 .NET。
  2. 按 Win+R 输入 eventvwr.msc,进入 Windows 日志 → 应用程序。
  3. 找来源为 Application Error 或 SideBySide 的条目,里面会写明缺哪个程序集、程序是 32 位还是 64 位。
  4. 把类别和位数记下来,后面的补装方向就靠这两条信息定。

方法2 核对已装的 VC++ 位数与版本是否成对

同一版本只装了 x86 或只装了 x64,是最常见也最容易被忽略的原因。先去程序列表里数一遍。

控制面板 → 程序和功能里搜 Visual C++,同一个年份的 Redistributable 一般会以 x86 和 x64 两条并列出现,只剩一条就是缺了另一边。2005、2008、2013、2015-2022 这几个版本各装了几条,也一并记下来。

位数还要认目录:32 位程序读 C:\Windows\SysWOW64,64 位程序读 C:\Windows\System32,名字和直觉是反的,别看错。

操作步骤:

  1. 控制面板 → 程序和功能,找到 Microsoft Visual C++ 20xx Redistributable。
  2. 看 x86 与 x64 是否成对存在,只装一个位数是常见原因。
  3. 记住目录规则:32 位程序读 C:\Windows\SysWOW64,64 位程序读 C:\Windows\System32。
  4. 缺哪边补哪边,32 位程序缺组件就先装 vc_redist.x86.exe,不要一律只装 x64。

方法3 重装或修复运行库组件

已经装过不等于装好了。安装包被中途关掉、或者版本互相冲突时,走安装程序里的修复比重装更有效。

提示已安装相同版本并报 0x80070666,说明系统里已经有这个版本的组件,反复双击安装包也不会改变结果。

操作步骤:

  1. 到微软官网下载 vc_redist.x86.exe 与 vc_redist.x64.exe。
  2. 如果提示已安装相同版本并报 0x80070666,不要反复双击重装。
  3. 改走安装程序里的「修复」选项,或右键以管理员身份运行。
  4. 离线补组件可用管理员命令执行 dism /online /add-package 指定组件包。

方法4 用 sfc 和 DISM 修复系统文件层损坏

组件明明装上了却还是报 0xc000007b,多半是 C:\Windows\System32 下的系统文件被改坏或误删了。

sfc /scannow 会逐条比对系统文件并自动修复,跑完会提示「Windows 资源保护找到了损坏文件并成功修复了它们」,或者提示未找到完整性冲突。DISM /Online /Cleanup-Image /RestoreHealth 修的是系统映像里的组件存储,sfc 自己修不动的部分靠它兜底。这条命令需要联网,跑完再执行一次 sfc /scannow 收尾。

开始之前先确认 C 盘剩余空间充足,15GB 以上比较稳妥。

操作步骤:

  1. 以管理员身份打开命令提示符。
  2. 先执行 sfc /scannow,等扫描结束看是否提示「已修复损坏的文件」。
  3. 再执行 DISM /Online /Cleanup-Image /RestoreHealth,修复系统映像里的组件存储。
  4. 确认 C 盘剩余空间充足,排除清理工具误删 C:\Windows\System32 下运行库文件的情况。
代码语言:powershell
复制
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow

方法5 兜底:补齐其它组件并排除安装包问题

VC++ 补齐后还报错,往往是 .NET、DirectX 一起缺,或者软件用的是被精简过的安装包。

.NET Framework 3.5 默认不装,要在控制面板 → 程序 → 启用或关闭 Windows 功能里手动勾上。老游戏常缺 d3dx9_43.dll、xinput1_3.dll 这类 DirectX 文件,也要一并补。同一软件换成官网的完整安装包再装一遍,绿色版和精简版经常把自带的运行库删掉。

以上都试过还不行,就做一次就地升级安装,在保留个人文件与已装程序的前提下重建系统组件环境。

操作步骤:

  1. 检查 .NET、DirectX 等其它运行库组件是否也缺失,同类问题常常一起出现。
  2. 用 Windows 更新把系统自带组件补到最新版本。
  3. 同一软件换用官方完整安装包重装,排除精简版、绿色版自带运行库不全。
  4. 以上都无效再做就地升级安装(保留个人文件与已装程序),重建系统组件环境。

常见问题

提示缺少 msvcp140.dll,VC++ 装了还是报错怎么办?

先确认装的是哪一边。很多程序只有 32 位版本,缺的其实是 vc_redist.x86。装全了还报同一个文件名,就按文件损坏处理:先跑 sfc /scannow,再把缺失的 dll 文件补回。

装运行库时报 0x80070666,是不是要先把旧版本卸载?

不用。这个错误码的意思是系统里已经有同版本组件,卸载再装可能带出新的问题。直接在安装程序里选「修复」,或者右键以管理员身份重新运行安装包。

32 位程序提示缺 dll,只装 x64 运行库有用吗?

没用。32 位程序在 64 位系统里读的是 C:\Windows\SysWOW64 下的文件,对应 x86 版本的运行库。只装 x64 那一边,程序照样找不到文件。

程序启动报 0xc000007b,和运行库缺失是一回事吗?

关系很近。0xc000007b 常见于 32 位和 64 位文件混用,或者系统文件层有损坏。先核对运行库位数,再跑 sfc /scannow 和 DISM /Online /Cleanup-Image /RestoreHealth。

新装完系统后软件都打不开,运行库要怎么一次性补齐?

按年份把 VC++ 2005、2008、2013、2015-2022 的 x86 与 x64 都装上,再检查 .NET 与 DirectX。手动一个个找容易漏,用带运行库检测的工具扫一遍缺什么补什么,比逐个试快。

小结

运行库缺失的定位链条其实很短:报错模块名 → 组件类别 → 已装位数 → 修复方式。这四步里任何一步跳过,后面都会变成盲目重装。

再补一条没验证过的边界:32 位程序在 64 位系统上读 SysWOW64,这条在 Windows 10 上反查过多次都对得上;Windows 11 上我只在少数几台机器上确认过同一规律,没有大样本。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 同一台电脑,为什么有的软件能开、有的点开就报错
  • 方法1 从弹窗模块名和事件日志定位缺哪一类
  • 方法2 核对已装的 VC++ 位数与版本是否成对
  • 方法3 重装或修复运行库组件
  • 方法4 用 sfc 和 DISM 修复系统文件层损坏
  • 方法5 兜底:补齐其它组件并排除安装包问题
  • 常见问题
    • 提示缺少 msvcp140.dll,VC++ 装了还是报错怎么办?
    • 装运行库时报 0x80070666,是不是要先把旧版本卸载?
    • 32 位程序提示缺 dll,只装 x64 运行库有用吗?
    • 程序启动报 0xc000007b,和运行库缺失是一回事吗?
    • 新装完系统后软件都打不开,运行库要怎么一次性补齐?
  • 小结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档