zoukankan      html  css  js  c++  java
  • loadlibrary(xxx.dll) 失败 返回14001 由于应用程序配置不正确 应用程序未能启动.重新安装应用程序可能会纠正这个问 .

    转载请标明是引用于 http://blog.csdn.net/chenyujing1234 

    欢迎大家拍砖!

    一、应用背景

    有一个在win7中用VS2008编译成功,运行正常的程序:Exe+DLL;

    放到XP虚拟镜像上运行却提示:LoadLibrary返回14001。

    (1) 后来采用了下面方法中的“方法一”解决了。

    (2) 但在方法一的基础上还要安装VS2008对应的分发包vcredist_x86.exe

    (VS2005的安装目录下提供了此文件,但在VS2008去不提供,但可到网上下载)。

    参考文章:

    http://hi.baidu.com/roger_long/item/867a7cf6fd8cf4cc521c26c5

     

    二、网上资料

    有些机器出现这样的问题,有些没有!有些控件无问题,有些有问题。以前做安装测试都是项目经理负责,我从来不关心这种问题。现在的公司,没有这样全职的职位负责。还是自己来吧。

    根据经验出现这种问题,肯定动态链接的DLL问题
    1.在可以使用控件机器上使用 depends 发现,原来比较特别就是安装了CRT运行
    2.不行的机器上,无安装CRT
    3.为什么有一个控件,就算是无安装CRT也可以运行,但大家都静态连接到ATL
    4.于是把xp的CRT DLL复制到2003,还是不行(可能2003与xp CRT不同,没有继续尝试)
    5.到网上找找还真到答案 "loadlibrary 失败 由于应用程序配置不正确 应用程序未能启动 crt"

    ============================================================================
    解决:

    方法一:

    在C:\Program Files\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 下找到了下列文件:

    msvcm80d.dll
    msvcp80d.dll
    msvcr80d.dll
    Microsoft.VC80.DebugCRT.manifest

    把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以运行那个程序了。

    其他release版,MFC程序什么的都是拷redist下相应文件夹下的文件就可以了,文件夹后都有标识!

    注意:

    (1)如果是VS2008版本的那么到C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\x86\Microsoft.VC90.DebugCRT路径下找文件。

    (2)如果是放到system32下,那么还要改系统环境变量。

    方法二:
    修改编译选项,将/MD或/MDd 改为 /MT或/MTd,这样就实现了对VC运行时库的静态链接,在运行时就不再需要VC的dll了。

    方法三:

    工程-》属性-》配置属性-》常规-》MFC的使用,选择"在静态库中使用mfc"
    这样生成的exe文件应该就可以在其他机器上跑了。

    方法四:

    你的vc8安装盘上找到再分发包vcredist_xxx.exe和你的程序捆绑安装


    方法一:原来我就差 Microsoft.VC80.DebugCRT.manifest 这个文件就成功了,可以那个时候没有继续试
    方法二:这个方法最好,适应多种工程
    方法三:MFC才适用吧
    方法四:比较大的项目比较好!

     

    三、扩展

     

    解决方法:

     

  • 相关阅读:
    jQuery 基本选择器
    JavaScriptif while for switch流程控制 JS函数 内置对象
    JavaScrip基本语法
    数据库 存储引擎 表的操作 数值类型 时间类型 字符串类型 枚举集合 约束
    数据库基础知识 管理员 用户登录授权的操作
    粘包的产生原理 以及如何解决粘包问题
    socket TCP DPT 网络编程
    2018年年终总结
    Android技术分享
    No accelerator found
  • 原文地址:https://www.cnblogs.com/lidabo/p/2837648.html
Copyright © 2011-2022 走看看