原创文章,转载请注明http://blog.csdn.net/yysmath/article/details/45418577
问题描述:
使用vs2010的64位编译器编译vtk源码,生成dll,在程序中引用,生成exe运行出现0xc000007b错误
背景:
win7 64位,开发工具vs2010
我是使用qt+vtk开发的,在编译vtk时,参考了如下网址
参见网址:http://blog.csdn.net/cgcoder/article/details/8262232
网帖中介绍说,使用cmake编译vtk源码时应该使用32位编译器而非64位
原话如下“按 configure 按钮,选Visual Studio 10编译器(这里即使是win7 64位的也建议不要选VS2010 W64,不然你就等着悲剧吧!!0XC000007B这个牛逼的错误等着你!!劳资装了4天都这样选的,MLGBD),然后cmake会描所需要的文件。”
我没有信这个邪,偏偏用vs2010 w64,哦豁,果然牛逼的0xc000007b来了
解决过程:
网上查找0xc000007b错误原因都不是我想要的
和vtk64位有关的0xc000007b错误google和百度里都没有看到资料
遂打算使用dependencywalker检查生成程序的依赖项
dependencywalker的官网:http://www.dependencywalker.com/
使用dependencywalker打开我生成的exe文件结果如下:
那些红色部分的错误我都没管
直接查看这一部分
虽然我只是做了一个vtk的console application与qt无关
但是其实还是需要引用qt的dll
我电脑上编译了qt的32位和64位两个版本
从依赖项检测的结果来看,这里应该是qt的dll版本冲突
我将我之前编译的qtcore4.dll和qtgui4.dll的64位版本拷贝到exe同目录下,问题解决
解决办法:
qtcore4.dll和qtgui4.dll的64位版本拷贝到exe同目录下,问题解决