概述
网上这类问题太多了,本质是因为这个现象的成因可能比较复杂,因此搜索到的解决方案不一定能解决你手上的问题。这里记录一下我遇到的问题场景,并且附上解决方案。同时致谢文章:正确解决:坑爹的0xc000007b——应用程序无法正常启动,正是这篇文章实质上解决了我的问题。
问题场景
我的问题场景来源于 CAJViewer 7。
很奇葩地,因为需要查阅本校往年的学位论文,而必须使用学校提供的 CAJViewer 7 来访问那些加密的 .caj 。第一次使用本机 Win10 打开时一切正常,但是手贱使用了一个功能“在文本中搜索”。这轻轻一个点击,让我的系统立刻蓝屏崩溃,报错 SYSTEM_SERVICE_EXCEPTION ,同时指出对应文件错误 cajvd_x63.sys 。作为信息专业学生,我很乐观地等待重启后开始搜索相关问题、尝试替换错误文件,但是发现并没有效果。于是开始卸载重新安装软件、重启系统、安装其他版本 CAJViewer 等操作,发现均不能再打开加密的学位论文文件。至此,已经耗费了一个多小时,遂准备放弃,转而写邮件向学校申请无加密的 PDF 文件。
期间,虽然蓝屏崩溃之后,我发现我文件浏览器的快速访问项目全部被清空,但是没有太在意。
写完申请邮件后,开始进行其他的工作。我突然想到,我可以用虚拟机安装一个 windows 系统、在虚拟机内使用 CAJViewer 直接查看加密的学位论文呀。随手点开 VirtualBox,结果傻眼了,遇到了标题中的 0xc000007b 问题。这下傻眼了,怎么 CAJViewer 的崩溃,还把其他软件也带崩了呢?简单的搜索发现,这个问题的可能原因极多,包括系统环境路径顺序、硬件损坏、DirectX 问题、依赖问题等等。但这些都不能解决问题。
解决方案与猜想
看到开头链接文章,才冷静分析了一下。我的系统里 DirectX 正常,从其他应用程序的表现来看,硬盘应该没有太严重的物理损害,且将 VirtualBox 安装到其他硬盘上依然不能启动。可见问题还是出现在依赖上。但是依赖项太多了,C++ 各种发行包、.net 各种版本,从何找起呢?还是开头链接文章给了我思路:直接安装 VisualStudio 试试!因为一直不用 C++ 开发,也没有在这个电脑上安装 VS,就只能去官网下了下载器开始重新安装了。
安装还没有进行到一半,尝试打开 VirtualBox,这回成功了。
小结与猜想:毫无疑问,我的问题源自某些 c++ 发行包或 .net 依赖被 CAJViewer 这个奇葩给破坏了。而安装 VS 则重新安装了相关依赖,进而解决了问题。VS 安装成功后,我立刻卸载了软件(过河拆桥。。),事实证明依然可以运行 VirtualBox。
仅以此记录感谢上文链接中的老哥,也希望能帮到更多读者。