VLD-添加到vs2008后,发生“程序无法运行”错误
来源:互联网 发布:淘宝添加客服旺旺 编辑:程序博客网 时间:2024/05/21 09:48
本人在项目中使用VLD检查内存泄露问题,但是有时候能正常添加到项目中并且项目能正常运行,但是也有很多次添加到项目中之后项目无法启动,出现“应用程序正常启动失败(0xc0150002) ” 错误,在系统的管理的事件查看器中也没有关于该错误的提示信息,经过查阅网络资源,发现不少网友也出现该情况,但是所有的解决办法都不能解决,最后经过多方英文文档查询,发现问题引起的原因如下:
VC2003、VC2005、VC2008及其后续版本,对底层最基本的CRT、MFC、ATL库都进行了重构,为了避免不同版本的库引起冲突,重构后的库文件一般放在C://windows/WinSxS 文件夹中,并用特定的文件夹/文件名称进行标识; 与VC6不同, VC2003、VC2005、VC2008及其后续版本,引入了manifest清单的概念,即应用程序编译后会同时生成对应的.manifest文件,并将该.manifest文件作为资源编译到dll或者exe中去。.manifest文件实际上是一个XML格式的文本文件,里面记录了dll或exe中要引用的CRT、MFC、ATL库的版本和名称。VC6编译的应用程序对CRT、MFC、ATL的dll都是直接调用,而VC2003、VC2005、VC2008编译的程序都是先查询编译到资源中的manifest中的记录,然后按照记录提供的版本和名称去搜寻对应的CRT、MFC、ATL库以及随库发布的.manifest文件,搜寻的路径包括当前目录、C://windows/WinSxS等等,如果没有找到对应的库文件,则提示“应用程序正常初始化失败”。
这两篇有解决办法,就是把VLD中的这两个复制到执行文件夹下就正常了(bin目录下所有资源清单文件和dll)Microsoft.VC90.CRT.manifestMicrosoft.DTfW.DHL.manifest
0 0
- VLD-添加到vs2008后,发生“程序无法运行”错误
- 经典错误:插入for循环后程序无法运行
- VS2008+QT添加UI后无法编译
- VS2008 MFC添加类向导弹出脚本发生错误解决办法
- VS2008 按F5调试运行报无法启动程序错误解决方案
- VS2008 按F5调试运行报无法启动程序错误解决方案
- 检测到指定的WEB服务器运行的不是ASP.NET 1.1版,您无法运行ASP.NET应用程序或服务和创建ASP.NET程序时候发生错误 HTTP/1.0 500 Server Error的解决方法
- vc6程序迁移到vs2008一般性错误
- mysql修改密码后无法登陆问题,发生#1251错误
- vs2005迁移到vs2008后无法加载项目的问题
- 发生错误x秒后自动跳转到制定页面
- 解决xp右键打开方式浏览程序后,无法添加到列表的问题
- pycharm安装后无法运行Python程序
- 运行安装程序时发生(-5004 : 0x8002802b错误)
- Android 从启动到程序运行发生的事情
- Android从启动到程序运行发生的事情
- Android从启动到程序运行发生的事情
- WP7 APP.XAML 删除后,再添加后无法运行
- Memcached的应用
- C++学习之类型转换带来的问题
- 三消游戏冒险王之tiled使用经验
- 父页面打开两级模式窗口,子页面无法向父页面返回值
- Flex中利用SortField和Sort类对ArrayCollection进行排序的例子
- VLD-添加到vs2008后,发生“程序无法运行”错误
- iis7.5配置PHP
- Android语音识别技术、消息推送机制、二维码扫描技术、NDK、JNI
- angularjs学习系(3)指令的@=&
- C4.5 决策树
- struct 字节对齐详解与大小端模式
- PLSQL配置(转)
- [Android] ImageView.ScaleType设置图解
- eclipse汉化之后不能打字问题的解决方案