应用程序正常初始化(0xc0150002)失败。请单击“确定”,终止程序

转载:http://hi.baidu.com/kiropower/item/167d96c0f1d71242a9ba9481

 

以前习惯了使用VC6,打包程序的时候只要把相应的exe,dll拿过来就能运行。最近有个项目用vc2005开发,运用以前的经验,将所需要的dll和exe一起拷到同事的机器运行,一运行程序就报错了,错误信息为“应用程序配置不正确,程序无法启动,重新安装应用程序可能解决问题”,于是上网查了些资料,说是少了vc2005 运行库。于是让同事也装了一个vc2005的运行库。装完之后,运行程序还是出错,错误信息为“应用程序正常初始化(0xc0150002)失败。请单击“确定”,终止程序”。

  于是又上网查资料,都说是缺少manifest文件中所依赖的库,但是少哪一个库呢?我的程序需要的第三方库有lua, luabind,boost库。从系统工具--》事件查看器中找到三条有用的信息,
1:Generate Activation Context 为 C:\Documents and Settings\Administrator\桌面\release(3)\luabindd.dll 失败。 参考错误消息: 操作成功完成。
2:Resolve Partial Assembly 为 Microsoft.VC80.DebugCRT 失败。 参考错误消息: 参照的汇编没有安装在系统上。
3:找不到附属汇编 Microsoft.VC80.DebugCRT,上一个错误是 参照的汇编没有安装在系统上。

  看到这些信息后,我想会不会是由于luabind库加载失败的原因?于是我查看了一下luabindd.dll.manifest中的依赖关系,发现它依赖于Microsoft.VC80.DebugCRT中的debug 运行库,而我的程序中只包含了Microsoft.VC80.CRT的release运行库,于是我重新编译了一个lubind的release库,修改了工程的lib(依赖于luabind的release lib),重新编译后,放入同事的机器上运行正常。

 

你可能感兴趣的:(应用程序正常初始化(0xc0150002)失败。请单击“确定”,终止程序)