应用程序正常初始化 0x0150002失败
用VC2005编译的程序,编译时没有任何错误,但是运行时就是提示“应用程序正常初始化失败”!! 查找了各方面资料,做了各种尝试,网上说什么的都有:有让安装vc2005 sp1补丁的;有让安装vcredist_x86.exe的; 有让把CRT库的dll直接拷贝到程序目录的; 有让清理注册表的;有让装.NetFramework新版本的;有让查manifest的;
结果我尝试了半天,几乎都是浪费时间。上面最后一条说的还算正确,只是作者把事情描述得太繁琐了。。现在把处理的方法说一下,省得大家再走弯路:
1. VC2003、VC2005、VC2008及其后续版本,对底层最基本的CRT、MFC、ATL库都进行了重构,为了避免不同版本的库引起冲突,重构后的库文件一般放在 C://windows/WinSxS 文件夹中,并用特定的文件夹/文件名称进行标识;
2. 与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 等等,如果没有找到对应的库文件,则提示“应用程序正常初始化失败”;
3.因此解决这个问题的办法就是:
(a)用文本编辑器打开exe或dll对应的.manifest文件,查看它引用的CRT、MFC、ATL库的版本;或者,用UltraEdit直接打开exe或者dll,从资源区中找到编译进去的.manifest信息,找到它引用的CRT、MFC、ATL库的版本;或者,运行程序,当程序弹出“应用程序正常初始化失败”对话框时,在桌面上右键点击“我的电脑”-“管理”-“事件查看器”-“系统”,双击查看其中的记录,可以看到出错的原因是因为缺少了某某版本的CRT、MFC、ATL库,记录下这个版本信息;
(b)记录到的库的版本信息一般类似于“Microsoft.VC90.DebugCRT”,之后到C://windows/WinSxS 或者VC200X的安装文件夹中搜索包含这个字符串的文件夹和文件,将搜索到的dll和.manifest文件都拷贝到应用程序所在的文件夹中,其中,.manifest文件必须重命名为“Microsoft.VC90.DebugCRT.manifest”(这里以Microsoft.VC90.DebugCRT为例),这样应用程序就可以正常运行了;
(c)注意:库的.manifest文件和dll要一同拷贝到应用程序根目录去,因为应用程序会将编译到内部的manifest信息与外部的.manifest文件进行对比,之后才会对库的dll进行调用。如果只拷贝库的dll文件是没有用的;
4.如果本机编译和运行程序都ok,但是将编译好的程序拿到其它机器上确无法运行,则多半也是这个原因。另外,如果提示"应用程序配置不正确",大多也是因为上面所说的CRT、MFC、ATL库版本与应用程序不匹配导致的,可以如法炮制进行解决;
应用程序正常初始化 0x0150002失败相关推荐
- 解决“应用程序正常初始化(0x00000005)失败”错误
在一台装了Windows Server 2003的操作系统上运行一个视频软件,提示"应用程序正常初始化(0x00000005)失败".但是在某些Windows XP机器上运行是正常 ...
- 0xc0000005 系统应用日志_0xc0000005,小编教你怎么解决应用程序正常初始化0xc0000005失败...
对于怎么解决应用程序正常初始化0xc0000005失败这个问题,小编觉得是需要知道的,因为我们在生活中遇到类似这样的问题几率还是蛮大的.所以小伙伴们要接着往下看哟~接下来小编就来告诉你们怎么解决应用程 ...
- 应用程序正常初始化(0xc150002)失败
可能是Debug版的程序 错误描述为:" 应用程序正常初始化(0xc150002)失败" 解决方法为: 需要开发者安装430MB左右的VS80sp1-KB926604-X86-CH ...
- 应用程序正常初始化0xc0000135失败的解决办法
今天在打开CDImage.exe文件时,弹出"应用程序正常初始化0Xc0000135失败,请打击'确定'....",换了几个文件都是这样. 这个问题貌似很常见,找了下资料,得 ...
- 应用程序正常初始化(0xc0000135)失败解决方法;附:该内存不能为“read”和“written”
应用程序正常初始化(0xc0000135)失败解决方法 这是由于没有安装.NET framework 所造成的,请安装.NET framework.下载地址:微软官方地址:http://downloa ...
- vs2010创建Dll例子,并解决运行错误:应用程序正常初始化(0xc000000d)失败。请单击“确定”,终止应用程序。
调用Dll的工程遇到应用程序正常初始化(0xc000000d)失败.请单击"确定",终止应用程序. 我的开发环境是Win32 XP,VS2010 最终找到原因,之前使用的是Debu ...
- 应用程序正常初始化(0xc0000135)失败解决方法
今天电脑准备运行一个exe程序时,总是出现应用程序正常初始化(0xc0000135)失败 ,我以为是下载的软件不行,于是重新去别的地方下一个,还是运行不起来,于是去百度了一下,发现了问题所在. 应用程 ...
- 应用程序正常初始化(0xc0000135)失败
应用程序正常初始化(0xc0000135)失败解决方法 这是由于没有安装.NET framework 所造成的, 请安装.NET framework.下载地址:微软官方地址:http://downlo ...
- QT5.5编译程序无法启动,报应用程序正常初始化 0xc0000135 失败问题解决一例
QT5.5编译程序无法启动,报应用程序正常初始化 0xc0000135 失败问题解决一例 昨天同事碰到一个古怪的问题,也许是程序员常见的问题,在自己的PC上,程序能够很好的运行,但是拷贝到别人的机器上 ...
- windows开机出现‘应用程序正常初始化(0xc0000044)失败’进不了系统
在前两天的工作中,客户那边的服务器winows2003出现了进不了桌面的问题,当输入用户名和密码后,跳出警告对话框:应用程序正常初始化(0xc0000044)失败.出现一个蓝色的纯净的桌面,用Ctrl ...
最新文章
- luogu 2051 中国象棋
- python基础语法第10关作业-Python基础作业一
- 《C++ Primer 第五版》第二章(第5小节)——using和typedef,auto和decltype总结
- Python数据分析入门(四)
- 力扣326.3的幂 C/C++
- C# 压缩Access数据库(转)
- Express初级学习
- python爬虫什么意思-Python 爬虫是什么
- 低照度图像修复方法总结
- Termux字体大小调整
- ios android 自动化测试工具,AndroidIOS自动化测试框架整合升级方案
- html倒计时面自动跳转,小代码 html 自己网页倒计时跳转
- 联想计算机安装系统,联想计算机重新安装系统的详细步骤?
- 《Word中从正文开始设置页码》
- 围绕禅道介绍公司流程
- Hadoop的安装与配置(非常重要)
- Typora配置图床
- LinuX 硬盘分区细节详谈
- 人工智能其实就是『八卦』
- 初学 Sliding Window 之个人笔记