我最近不得不重新安装Windows 7 64(我的硬盘死了),我用vc ++ 2013建立了我的项目,但是当我运行它时,我得到一个0xc000007b错误
我发现32位应用程序的这个错误通常是由于加载64位dll而不是32位版本
所以我试图弄清楚发生了什么,我尝试使用Dependency Walker,但是当我用它打开我的exe时,我看到的唯一错误就是缺少那些文件:
API-MS-WIN-APPMODEL-RUNTIME-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
API-MS-WIN-SHCORE-SCALING-L1-1-1.DLL
DCOMP.DLL
GPSVC.DLL
IESHIMS.DLL
我怀疑这个问题,但这些错误似乎表现在很多人身上,我想我应该忽略它们
其余的dll似乎没问题和32位,所以看起来很好
我试图在依赖性walker上使用profiling选项找到更多的东西,但它在加载一堆dll后挂起,我怀疑分析日志中的任何信息都有帮助,但无论如何我发布它(我无法复制)它来自Dependency Walker窗口导致进程此时没有响应)
我已经读过另一个堆栈溢出post,这个问题可能会在我无法找到的2.2.28288版本的Dependency Walker中修复
我尝试卸载并重新安装vs 2008/2010/2012/2013可再发行软件包x86 / x64以解决问题,正如有人在其他帖子中建议的有关此错误的但是没有工作
目前我不知道如何弄清楚为什么会发生这种情况,任何提示都会有所帮助
编辑:
我尝试了最新的Dependency Walker版本,按照建议从WDK安装它,但它遇到了同样的问题
我也尝试使用Process Monitor,我有一个加载的dll列表。我用一个在文件上运行dumpbin的脚本检查了列表以检查架构只是为了确定,this是结果,对我来说似乎没关系,唯一的x64 dll是wow64 dll,应该没问题,我忽略了什么吗?
答案 0 :(得分:0)
我知道这是一个老问题,但是由于本周我遇到了同样的错误,并且花了很多时间来查找原因(修复,重新安装Visual Studio,重新编译依赖的DLL等),所以我分享了我的解决方案在这里。
有时由于DLL冲突而发生0xc000007b错误。导入的DLL之一是从您期望的其他位置导入的。 例如,在您的问题中,路径上有第二个GPSVC.DLL副本,该副本已加载并出现0xc000007b错误。
您可以使用where
控制台命令找到DLL的位置,并查看是否存在第二个副本:
> where GPSVC.DLL
C:\path\to\another\copy\GPSVC.DLL