用VS2013建立了一个c++ console application,然后引用了一个DLL, 启动的时候报错:

The application was unable to start correctly (0xc000007b)

哪怕是如下最简单的代码也报错:

#include "stdafx.h"

 

int _tmain(int argc, _TCHAR* argv[])

{

 

    return 0;

}

 

到底怎么回事那?

【分析】

查了这篇文章:

https://stackoverflow.com/questions/10492037/the-application-was-unable-to-start-correctly-0xc000007b

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位的,就解决了。

posted on 2018-03-30 20:17  今夜太冷  阅读(5698)  评论(0编辑  收藏  举报