双击一个老软件或老游戏,直接弹窗「无法启动此程序,因为计算机中丢失 mfc100.dll」。先说结论:别去 dll 下载站手动下文件往系统里塞,这个报错缺的不是单个文件,是一整套运行库。
缺的是什么
mfc100.dll 属于 Visual C++ 2010 运行库的一部分,文件名里的 100 就对应 2010 版本。用 MFC 写的程序发布时一般不打包运行库,目标电脑上没装,启动时就报这个错。同类报错还有 mfc110、mfc140,数字越大对应的运行库版本越新。
正确装法
去微软官网搜 Visual C++ 2010 Redistributable,注意两个包都要装:x86 给 32 位程序用,x64 给 64 位程序用。就算系统是 64 位,很多老软件本身是 32 位,缺的恰恰是 x86 那个包。装完重启一次再打开软件。
不清楚程序是几位数的,就两个都装,互相不冲突,系统里可以同时存在多个版本的运行库。
装了还报错的排查
- 管理员身份打开命令提示符,执行 sfc /scannow 扫一遍系统文件,看有没有被损坏的组件。
- 把出问题的软件卸载重装,不少安装包会自带运行库,安装时顺便就补上了。
- 确认下载的安装包本身完整,下载中断或解压损坏也会连带报 dll 缺失。
报错还可能写成「应用程序无法正常启动」加一串错误码,或者提示 mfc100.dll 没有被指定在 Windows 上运行,背后都是同一个问题,按上面的装库流程处理就行。系统重装或精简之后这类报错经常批量出现,游戏、办公软件一起缺库,一次性把 2010 到 2015 起的几个常用版本都装齐,能省不少来回折腾的时间。
一句话判断:看到 mfc 开头的 dll 报错,按文件名里的数字对号装对应年份的 VC++ 运行库,从官网下,32 位和 64 位都装。手动往 System32 塞单个 dll 文件,经常按下葫芦浮起瓢,今天修好明天又缺别的。