1. 主页 > vs安装问题 > VS2012安装问题 >

Visual studio 2012 报错 0xc000007b

Visual studio 2012 报错 0xc000007b

  • 背景
  • 解决方案
  • 罪魁祸首tecio.dll

背景

移植课题组的CFD code构建新的工作环境。拷贝VS2012的C++工程文件到新电脑上,Cmake后得到新的工程文件,debug调试和release运行都报错0xc000007b。根据网上的解决方案折腾一圈,最后通过一点点思索,解决了这个问题。结论,和网上主流说法一致,缺少动态链接库dll。

解决方案

首先给出解决方案。这种报错一般是缺少重要的动态链接库或者动态链接库链接出错(win32的程序链接64位版本的dll或者相反)。我的问题是前者。如何确定到底缺少哪个dll文件呢,首先要知道可执行文件exe依赖哪些dll。

查询exe依赖的dll可以参考链接: https://blog.csdn.net/jirryzhang/article/details/53816577.在这里简单介绍一下:

  1. 打开 开始->所有程序->Microsoft Visual Studio 20xx ->Visual Studio命令提示(20xx),其中xx表示你的VS版本,如下:
    visual studio 命令提示
  2. 使用dumpbin /dependents 命令查看test.exe文件的依赖项:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC>dumpbin /dependents F:\test.exe

通过以上两步已经可以看到程序依赖的dll,以我的结果为例:
程序所依赖的dll列表
接下来在电脑上逐个检索这些dll文件,一般情况下在C:\Windows\System32和C:\Windows\SysWOW64中都应有相应文件,分别是32位版和64位版本。如果没有,那么恭喜,问题找到,从网上下载相应的dll文件放在上面的文件夹中即可。

这里介绍一个文件搜索神器everything,比window的文件资源管理器搜索快多了,秒出结果。

多说一句,如果经过搜索dll在相应的文件夹中都能找到,那么很可能是VS的项目属性设置出问题了。比如32位的程序想要链接64位的dll。在附加库目录中确认文件夹地址中包含的是32位版本的lib。

罪魁祸首tecio.dll

这次问题的罪魁祸首就是tecio.dll文件,这里简单介绍一下。简单的搜索可以知道它是tecplot的产品,tecplot的介绍页在这里https://www.tecplot.com/products/tecio-library/。

TecIO库文件允许第三方程序来读写Tecplot格式的文件。包含了一个简单易用的API来写SZL文件。最新的TecIO支持64位索引,允许单个zone包含超过20亿个节点。将结果写成二进制的szplt文件,相比ASCII码,可以减小存储,加快tecplot后处理的读写速度。

本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2012anzhuangwenti/2020/0725/4388.html

联系我们

在线咨询:点击这里给我发消息

微信号:PREEE8

工作日:9:30-18:30,节假日休息