0xc000007b的意思是因dll文件调用异常而抛出的错误代码。那么我们平时玩游戏(吃鸡、极品飞车、FIFA等等)、用的工业软件(3ds max、maya、autodesk系列等等),究竟是哪些dll文件或者组件会存在异常呢?答案是DirectX(并且多数情况下是DirectX 9.0),以及Visual C++ Redistributable Package。
也许大家会问了:我玩的游戏都有DirextX 11的特效了,还会和DirectX 9有关系吗?事实上,游戏公司为了游戏的兼容性,往往都是基于DirectX 9.0的API开发游戏,然后加上DirectX 10和DirectX 11的特效,这样的话,不管什么样的显卡都可以玩游戏。也正是如此,DirectX 9.0有问题会影响目前最新的游戏。还有人会问了:我的Windows 7都能支持DirectX 11了,Windows 10都支持DirectX 12了,怎么还不行?这里要做两点说明,首先,Windows 7是最高支持DirectX 11,向下兼容DirectX 9以及DirectX 10,并不是Windows 7只支持DirectX 11;还有,原版的Windows中只包含了最基本的DirectX组件,而游戏需要的往往是较高级的组件(如d3dx9_42.dll、xinput1_3.dll),系统缺失这些关键的文件会造成游戏无法运行或出现0xc000007b错误。还有人会问:我已经装过DirectX 9.0了,也安装过c++了,还是不管用呀?这里有一个很大的误区,就是用64位系统的用户认为只需要安装64位的组件。这是不对的,因为游戏开发商为了游戏兼容性,往往都是在32位系统上开发的程序,以便可以同时兼容32位系统和64位系统,所以在64位系统上也必须同时安装32位和64位的库文件才行。重要的事情再重复一遍:32位系统要安装32位的DirectX和c++库文件,而64位系统一定要同时安装32位和64位的库文件,这是解决这个问题的关键。
解决方法:
说到这,大家自然就知道解决方法了——安装最新版的DirectX和c++组件。诚然,自己去一个一个的文件下载然后安装可能能解决问题,但是在网上搜过c++的朋友一定会知道,c++的版本太多了(感兴趣的用户可以参见我的博客《破解C++ Redistrib