VS运行时报0xc000007b错误

参考:
https://blog.csdn.net/u010205478/article/details/88682932
https://www.cnblogs.com/hbccdf/p/dllchecktoolandsyswow64.html
https://blog.csdn.net/norsd/article/details/81288681

现状: 一个VS项目,build完成了,运行时却报0xc000007b错误,无法运行!

查看依赖项

  • 使用开始菜单,输入"VS2015 本地工具命令提示符",运行之.
  • 输入dumpbin /dependents [文件路径],比如要查看c盘根目录下的a.exe就输入dumpbin /dependents "C:\a.exe"
  • 发现有几个依赖项;

检查依赖项是否可以访问到

  • 使用Everything检查这几个依赖项是否存在系统路径"C:\Windows\System32" and "C:\Windows\SysWOW64"里,以及exe同一目录里等;

    根据大佬分析,System32目录存放的是64位的dll, SysWOW64目录存放的是32位的dll. 32位应用程序(exe)等访问System32目录下的任何文件时,会被自动映射到SysWOW64目录. 64位应用程序(exe)可以直接访问两个目录.

检查依赖项的版本是32位还是64位

  • 如果所有依赖的dll都在能访问到的路径,那么可能是dll的版本与应用程序(32位)不匹配.使用denpends.exe软件(Dependency Walker)可以查看到依赖项DLL的版本,

使用文本编辑器查看你已有dll的版本也可以: 第2行的PE后面跟的是d,表示64位DLL,如果跟的是L,表明是32位的DLL文件

  • 把该DLL替换成32位版本即可.

猜你喜欢

转载自www.cnblogs.com/charleechan/p/13192813.html