• 在共享DLL中使用MFC


    使用VS2008,在项目属性中有一项MFC的使用,有三种设置:    

    1.使用标准Windows库   
    2.在共享DLL中使用MFC    
    3.在静态库中使用MFC    
           第一种顾名思义。
           第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。
           第三种是将DLL中的相关代码写进EXE文件中,文件较大,但是可以在没有相关DLL的机器上运行。    
           同时,如果程序本来是第二种方式,发给同事,在同事机器上运行时,可能会出现错误:   “无法启动程序……,由于应用程序配置不正确,未能启动此应用程序。”我觉得,在开发阶段的程序都选第3种比较好吧,不用管大小以及效率,等后期打包的时候用spy等其他工具都可以,来侦测DLL等就行了。(http://blog.csdn.net/xiexievv/article/details/6314874)
     

           "在共享DLL中使用MFC"指的是打包时一些MFC的DLL的内容没有被硬编码到在EXE文件中,所以EXE会文件较小,但是运行时要求运行的系统环境中要有相关的DLL文件.

         "在静态库中使用MFC"是将DLL对应的lib静态库中的相关代码硬编码到EXE文件中,文件较大,但是可以在没有已经被包含DLL的机器上运行,当然即使如此也并非所有的DLL都会将其硬编码到Exe中,因此仍然某些DLL是必须的.比如Redistributable Package中的某些DLL.

     

          静态库中编译出来的可执行文件拿到其它机器上也可以运行,共享DLL中编译出来的可执行文件在本机上可以执行,若拿到其它机器上就需要相应的动态库支持。

         另外,共享DLL下的工程大小会稍小一些,但是在另一台机器上运行时务必保证那一台机器上有动态库支持。

  • 相关阅读:
    Exceptionless in Docker on Linux 搭建及部署疑难杂症
    Golang 基础语法介绍及对比(二)
    Go Windows 环境安装及配置(一)
    ElasticSearch搜索解析
    ElasticSearch文档及分布式文档存储
    ElasticSearch利用IK实现全文搜索
    ElasticSearch简要总览
    轻松驾驭统计学——数据分析必备技能
    【面试】数据分析常见问题
    【Echarts】
  • 原文地址:https://www.cnblogs.com/andyliu1988/p/5952412.html
Copyright © 2020-2023  润新知