用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失败相关推荐

  1. 解决“应用程序正常初始化(0x00000005)失败”错误

    在一台装了Windows Server 2003的操作系统上运行一个视频软件,提示"应用程序正常初始化(0x00000005)失败".但是在某些Windows XP机器上运行是正常 ...

  2. 0xc0000005 系统应用日志_0xc0000005,小编教你怎么解决应用程序正常初始化0xc0000005失败...

    对于怎么解决应用程序正常初始化0xc0000005失败这个问题,小编觉得是需要知道的,因为我们在生活中遇到类似这样的问题几率还是蛮大的.所以小伙伴们要接着往下看哟~接下来小编就来告诉你们怎么解决应用程 ...

  3. 应用程序正常初始化(0xc150002)失败

    可能是Debug版的程序 错误描述为:" 应用程序正常初始化(0xc150002)失败" 解决方法为: 需要开发者安装430MB左右的VS80sp1-KB926604-X86-CH ...

  4. 应用程序正常初始化0xc0000135失败的解决办法

    今天在打开CDImage.exe文件时,弹出"应用程序正常初始化0Xc0000135失败,请打击'确定'....",换了几个文件都是这样.    这个问题貌似很常见,找了下资料,得 ...

  5. 应用程序正常初始化(0xc0000135)失败解决方法;附:该内存不能为“read”和“written”

    应用程序正常初始化(0xc0000135)失败解决方法 这是由于没有安装.NET framework 所造成的,请安装.NET framework.下载地址:微软官方地址:http://downloa ...

  6. vs2010创建Dll例子,并解决运行错误:应用程序正常初始化(0xc000000d)失败。请单击“确定”,终止应用程序。

    调用Dll的工程遇到应用程序正常初始化(0xc000000d)失败.请单击"确定",终止应用程序. 我的开发环境是Win32 XP,VS2010 最终找到原因,之前使用的是Debu ...

  7. 应用程序正常初始化(0xc0000135)失败解决方法

    今天电脑准备运行一个exe程序时,总是出现应用程序正常初始化(0xc0000135)失败 ,我以为是下载的软件不行,于是重新去别的地方下一个,还是运行不起来,于是去百度了一下,发现了问题所在. 应用程 ...

  8. 应用程序正常初始化(0xc0000135)失败

    应用程序正常初始化(0xc0000135)失败解决方法 这是由于没有安装.NET framework 所造成的, 请安装.NET framework.下载地址:微软官方地址:http://downlo ...

  9. QT5.5编译程序无法启动,报应用程序正常初始化 0xc0000135 失败问题解决一例

    QT5.5编译程序无法启动,报应用程序正常初始化 0xc0000135 失败问题解决一例 昨天同事碰到一个古怪的问题,也许是程序员常见的问题,在自己的PC上,程序能够很好的运行,但是拷贝到别人的机器上 ...

  10. windows开机出现‘应用程序正常初始化(0xc0000044)失败’进不了系统

    在前两天的工作中,客户那边的服务器winows2003出现了进不了桌面的问题,当输入用户名和密码后,跳出警告对话框:应用程序正常初始化(0xc0000044)失败.出现一个蓝色的纯净的桌面,用Ctrl ...

最新文章

  1. luogu 2051 中国象棋
  2. python基础语法第10关作业-Python基础作业一
  3. 《C++ Primer 第五版》第二章(第5小节)——using和typedef,auto和decltype总结
  4. Python数据分析入门(四)
  5. 力扣326.3的幂 C/C++
  6. C# 压缩Access数据库(转)
  7. Express初级学习
  8. python爬虫什么意思-Python 爬虫是什么
  9. 低照度图像修复方法总结
  10. Termux字体大小调整
  11. ios android 自动化测试工具,AndroidIOS自动化测试框架整合升级方案
  12. html倒计时面自动跳转,小代码   html 自己网页倒计时跳转
  13. 联想计算机安装系统,联想计算机重新安装系统的详细步骤?
  14. 《Word中从正文开始设置页码》
  15. 围绕禅道介绍公司流程
  16. Hadoop的安装与配置(非常重要)
  17. Typora配置图床
  18. LinuX 硬盘分区细节详谈
  19. 人工智能其实就是『八卦』
  20. 初学 Sliding Window 之个人笔记

热门文章

  1. python 导入本地模块包失败的解决方案
  2. DTM、DEM、DSM与DOM的概念
  3. python-利用python写一个购物小程序
  4. D. Take Your Seat
  5. 阿里云国际版账号登录不上去,账号被风控怎么办?
  6. 合天网安就业班_【合天网安实验室】SQL注入入门一
  7. postgresql 9.5 now()函数少8小时
  8. 单例模式-八种方法代码详解
  9. 通过SCP命令将文件复制到服务器或从服务器复制文件
  10. 朋友买的115资源系统源码