zoukankan      html  css  js  c++  java
  • 应用程序无法正常启动0xc0150002 解决方式

     
      我也遇到过此问题,解决的方法:

    方案一: 在项目的“属性|配置属性|链接器|常规”中的“启用增量链接”选择“否”。此方法阻断了问题产生的源头,其每次生成exe文件时都直接嵌入清单文件,而不是默认的依据时戳而决定是否更新清单文件。

    方案二:不嵌入清单文件。在项目的“属性|配置属性|清单工具|输入和输出”中的“嵌入清单”选择“否”,从而在生成exe文件时附随生成一个清单文件(默认情况下,其文件名称为exe文件的全名加上“.manifest”),避免了嵌入清单文件可能失败的问题。

     ,谢谢!

    近期做一个项目写了一个VC6下的MFC程序,结果传到别人的机子上(WIN7)出现了应用程序正常初始化(0xc0150002)失败的问题,当时还以为就是WIN7的问题,后来把程序复制到一台WINXP SP3的程序下还是不行。

        为什么我的机子上能够,而别人的机子上执行不了呢?

        開始google一下,找到了解决的一个办法——在程序执行出错的时候,右键“我的电脑”,然后点击“管理”,再点击“事件查看器",最后看下“系统”,信息例如以下:

        (1)找不到附属汇编 Microsoft.VC80.DebugCRT,上一个错误是 參照的汇编没有安装在系统上。

        (2)Resolve Partial Assembly 为 Microsoft.VC80.DebugCRT 失败。 參考错误消息: 參照的汇编没有安装在系统上。
        (3)Generate Activation Context 为 C:/scanfile/Debug/libclamavd.dll 失败。 參考错误消息: 操作成功完毕。
        能够推断是libclamavd载入的时候出了点问题了,看了下它的manifest文件,其依赖库是Microsoft.VC80.DebugCRT ,这样问题就非常明显了,这个dll是在VS2005下编译的,而别人的机子上没有这个环境,我们所编译生成的应用程序因为缺少必需的Debug版本号的VC执行库而错误发生。
        解决方法:到我的机子上的vs2005的安装文件夹下,搜索名字中包括串Microsoft.VC80.DebugCRT的文件,共同拥有3个dll文件(msvcm80d.dll,msvcp80d.dll,msvcr80d.dll)和一个manifest文件(Microsoft.VC80.DebugCRT.manifest),复制到别人机子上的project可运行文件文件夹下,问题就攻克了。
        从这个问题能够发现几点:
        (1)善用工具能够帮助定位问题:事件查看器,depends walker等
        (2)搜索效率,比方这个问题直接搜 ”应用程序正常初始化失败 0xc0150002“肯定会得到非常多噪音信息。。。
         PS:网上的解决的方法还有就是说下载vcredist_x86,我试了下不大好使。。。
  • 相关阅读:
    iOS 苹果开发证书失效的解决方案(Failed to locate or generate matching signing assets)
    iOS NSArray数组过滤
    App Store2016年最新审核规则
    iOS 根据字符串数目,自定义Label等控件的高度
    iOS 证书Bug The identity used to sign the executable is no longer valid 解决方案
    Entity FrameWork 增删查改的本质
    EF容器---代理类对象
    Entity FrameWork 延迟加载本质(二)
    Entity FrameWork 延迟加载的本质(一)
    Entity FrameWork 增删查改
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/3853821.html
Copyright © 2011-2022 走看看