VS出现这个错误大概率是由于DLL的位版本不对,比如编译出的64位可执行文件试图加载32位的DLL。
如何分析某个dll是32位还是64位?可执行文件究竟是加载了64位还是32位的dll?
从各种脚本网站上下载的dll文件有可能与其标注的位数不一致。有可能下载标注为64位的dll,实际却是32位。
可以使用depend软件去分析!下载链接:
http://www.dependencywalker.com/
或者(包含两个测试DLL):https://download.csdn.net/download/u010205478/11042502
使用说明:
1.下载到的软件测试分析文件夹内包含一个x64的DLL以及一个x86的DLL,可以看到x64的DLL分析显示AMD64,而x86的显示x86。
2.有时DLL分析可以看到加载出很多的DLL,只需要关注想要关注的即可。
3.有时X64的EXE有可能会分析出加载一些x86的DLL,有时候这也是正常的。只需要关注特别需要关注的即可。比VS运行opencv程序,关注opencv相关的DLL,以及msvcp,msvcr等DLL。
4.VS在执行过程中可能会从工程目录下的Debug或者Relase目录,以及c://windows/SyWOW或者c://windows/system32等目录下寻找dll。