双击游戏图标,弹窗「应用程序无法正常启动 0xc000007b」,点确定就退出,重装游戏也不管用。0xc000007b无法正常启动的本质是位数冲突:32 位程序加载到了 64 位的动态库,或者反过来,常见于刚装完系统、换过驱动或动过运行库之后。
最常见的元凶:运行库
典型场景:系统是 64 位,游戏是 32 位,缺 32 位库却被塞了 64 位文件,一启动就报这个错。很多人装软件一路下一步,32 位和 64 位运行库只装了一个,另一个程序一启动就踩坑。解法是把运行库装齐:微软官网下载 Visual C++ 2015-2022 可再发行程序包,x64 和 x86 都装;老游戏再补一套 DirectX 终端用户运行时,把 d3dx9 系列这些老组件补回来。
逐步排查
- 先以管理员身份运行一次,排除权限因素
- 同目录其他程序能开,是单个软件的库问题,重装该软件
- 所有程序都报同一个错,管理员运行 sfc /scannow 扫系统文件
- 装过 mod 或替换过游戏文件的,先还原原始文件再试
- 刚装了某个软件后开始报错,把那个软件带的运行库重装一遍
为什么重装游戏没用
游戏安装包会往系统目录装运行库,但系统里已经存在损坏的同名文件时,安装器可能跳过覆盖,报错依旧。这时用 sfc 扫描,或者把几个 VC++ 运行库卸干净重装一遍,让好文件归位。还有个验证办法:把报错程序拷到另一台正常电脑上运行,能跑就坐实是这台机器的库问题。
预防比修复省心
别用来源不明的精简版系统,这类系统为了瘦体积经常砍运行库,还可能注入错误位数的文件。装软件时顺手把常用运行库装齐,游戏平台首次启动时自动装运行库的那个勾别取消。DirectX 组件相关的缺文件报错和 0xc000007b 经常一起出现,处理手法相同,提前装好能省很多事。
判断顺序记一条:位数冲突找运行库,权限问题找管理员身份,都无效再扫系统文件。多数 0xc000007b 在第一步就能解决。