博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
The Distinguish of the share or static lib in MFC
阅读量:5944 次
发布时间:2019-06-19

本文共 1621 字,大约阅读时间需要 5 分钟。

 
如果选择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.

 

转载于:https://www.cnblogs.com/CBDoctor/archive/2013/01/18/2865889.html

你可能感兴趣的文章
Jquery插件开发
查看>>
产品配置管理相关通知
查看>>
数据库相关算法 之 xxHash
查看>>
牛顿法/递归法实现开方的函数功能
查看>>
手势模型和Angular Material的实现
查看>>
Java转换txt文件编码(GBK转UTF-8)
查看>>
Redis-使用记录
查看>>
APICloud 微信授权登录
查看>>
Java Web开发自学笔记一:环境(tomcat、jdk的选择和安装)
查看>>
Cakephp requestAction用法
查看>>
疯狂Activiti6.0连载(13)DMN的XML规范
查看>>
2.Linux上安装MySQL 5.5 rpm
查看>>
网站资源
查看>>
dubbo提供者出现不明外网ip注册的问题
查看>>
Mac版本UltraEdit取消自动更新检查
查看>>
HashMap之Hash碰撞冲突解决方案及未来改进
查看>>
OpenCV3 - 形态转换
查看>>
RTP
查看>>
C#调用java写的WebService
查看>>
常用对照表
查看>>