0xc0150002: 应用程序正常初始化失败
可能原因:
程序使用VS2008开发,使用了动态编译,而程序启动时发现系统中msvcr90库版本不匹配
也可能是exe程序间接使用了某些动态库,而那些库中有引入该库
确定问题:
可以通过查看Windows日志发现问题,
在“应用程序”中会有对该问题的详细描述,大致是未能找到所需版本的msvcr90
解决方法:
参考 http://blog.youkuaiyun.com/shellching/article/details/8294766
我遇到的情况:
vs2010写的一个操作sqlite数据库的程序,本机运行良好,
携带了sqlite.dll以及其依赖的msvcr90.dll,一同放在server2008(64位)系统上提示该错误;
后来拷贝了一个Microsoft.VC90.CRT.manifest文件,并且修改其中的版本号,放在同目录下OK
0xc000007b: 程序无法正常启动
可能原因:
程序使用了动态库,但是版本不对,最容易发生的是32位和64位版本错用的情况
确定问题:
可以通过动态库依赖工具查看,exe程序都依赖哪些库,以及各库的版本
常用的查看库依赖工具:eXeScope(未找到64位版)、depends(支持64位)
我遇到的情况:
vs2010写的一个mysql程序(64位),使用了mysql-connector-c++动态库,放在server2008(64位)系统上提示该错误
connector库使用了msvcr100和msvcp100两个运行库,错拷贝了x86版本的,换成x64版后OK
另,关于vs使用的各版本库,推荐参考
你所不知道的C和C++运行库