用VS2013建立了一个c++ console application,然后引用了一个DLL, 启动的时候报错:
The application was unable to start correctly (0xc000007b)
哪怕是如下最简单的代码也报错:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[]) {
return 0; } |
到底怎么回事那?
【分析】
查了这篇文章:
To start, I would suggest to test whether there is a problem between your application and its dependencies using dependency walker |
于是去下载了Dependency walker.
http://www.dependencywalker.com/
下载后打开我的项目编译成的Exe, 结果提示无法打开,然后有如下的Log:
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module. Error: Modules with different CPU types were found. |
这个提示的意思是说CPU的架构不对。
检查了一下,项目的设置是Win32, 然后想起我引用的那个dll是64位的。原来问题在这里。
【解决方法】
把Debug目录引用的那个dll换成32位的,就解决了。