zoukankan      html  css  js  c++  java
  • The Distinguish of the share or static lib in MFC

     如果选择use MFC in a Shared DLL 的话,你编译后的程序中不包含MFC库,所以文件会比较小,但是如果你的程序直接移到一个没有安装过MFC的机器上时,可能会导致找不到MFC的DLL。

    如果选择Use MFC in a Static Library ,那你编译后的程序就直接包含了调用MFC的部分的库,文件可能会大一些,但是可以直接移到其他机器上运行。

    前者是动态连接,发布要带MFC得DLL文件。

    后者是静态链接,发布不用带MFC的DLL文件。   

    如果可执行文件只有一个,使用前者,执行速度快,但文件比较大。
    如果可执行文件多个,使用后者,
    因为DLL文件是共享的,所以文件体积总量减少。
    单个文件也小。加载执行块,但运行速度略比前者慢。  

    used in a static library:
    使用lib文件。lib是已经编译好的二进制文件,可以与你的工程静态链接起来成为一个exe。   
    used in a shared dll:
    使用dll文件,函数实现隐藏在DLL文件内部,你的工程编译成exe文件后,运行时才调用dll   。

    ------------------------------------------------------------------------------

    A static library means the code you use from the library is included in your executable. Because of this, you don't need to ship the library or require the end user to have it on their machine. However this bloats the size of your executable and ties you to that library version, so if you need to update just the library, you have to ship a new executable.

    A shared library calls the library at the time it needs it (runtime) to execute the code, but it requires the user to have it (usually a specific or minimum version) installed on their machine. You can also distribute the required version of the library with your application if you need to.

    As for which is better, I don't know. I'm not a Windows C++ or MFC programmer so I couldn't say. On my Linux servers, the applications I write are generally server-side and thus use shared libraries.

    It depends on how your application is to be used, distributed, updated, how often the MFC library changes, if it's generally available on user's PCs etc.

  • 相关阅读:
    java IO输入输出流实现文本复制
    java HashMap
    java TreeSet 实现存自定义不可重复数据
    java中的ArrayList 使得集合中的对象不重复
    java 多线程执行过程
    final关键字的使用
    java中==和equals的区别
    java面向对象理解
    java语言基础(变量和运算符)
    学习Java第一天,大致了解
  • 原文地址:https://www.cnblogs.com/CBDoctor/p/2865889.html
Copyright © 2011-2022 走看看