应用程序正常初始化失败0xc0150002 错误

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wjh_monkey/article/details/41044651

1. 问题的出现

      编译好的程序在本机上运行OK,但发布到别人电脑上运行出现如下错误:

 

2. 分析原因

      出现该问题,一般是由缺少什么库文件或者库文件不兼容导致的。我的开发环境为vs2008,并在程序发布时放入了vs2008的运行库(参考附件4.1)。编译另外一个测试程序,在一样的环境中运行,却没有问题。所以排除vs2008库的问题。

      该问题可能出现在使用的库上,如果使用的Lib和其dll文件不一致也有可能导致该问题。我专门编写一个测试程序,测试使用的Lib文件。

      特别注意:如果依赖的一个lib文件,如果不使用其方法,该lib文件会被忽略。

3. 解决问题

      在测试程序中发现引用某一个库时,问题重现了。说明与该库有关,进一步分析是由于使用的lib文件与dll文件不一致导致的。 该库做过升级,我使用新的dll文件,但用了就的Lib库。问题重现,替换新的lib库重新编译即可。

 

4.附件

4.1 提取vs2008运行库

      vs2008编译时如果使用/MD的形式生成,则需要vs2008运行库(关于/MT与/MD的区别请直接百度)。一种方式,我们可以安装vs的补丁,另一种方式,直接在可执行文件的同一目录中放入依赖的运行库。其运行库一般在vs的按照目录下的VC\redist,在该目录中的文件夹看其名就知道其意义,如果需要同时指出debug和release的程序,则将其子文件中的所有dll文件拷贝出来。

 

建议:安装everything文件搜索工具,如有该工具,直接输入redist即可找到vs的安装目录。

至于vs的其他环境,参考这个提取即可。


如有任何问题,请直接与我联系:wjh_2010@163.com

展开阅读全文

没有更多推荐了,返回首页