动态链接和静态连接的优缺点_动态链接和静态链接的优缺点_sunweixiang1002的博客-程序员秘密

技术标签: 面试常问题型  

1 静态链接库的优点 

 (1) 代码装载速度快,执行速度略比动态链接库快; 

 (2) 只需保证在开发者的计算机中有正确的.LIB文件,在以二进制形式发布程序时不需考虑在用户的计算机上.LIB文件是否存在及版本问题,可避免DLL地狱等问题。 

2 动态链接库的优点 

 (1) 更加节省内存并减少页面交换;

 (2) DLL文件与EXE文件独立,只要输出接口不变(即名称、参数、返回值类型和调用约定不变),更换DLL文件不会对EXE文件造成任何影响,因而极大地提高了可维护性和可扩展性;

 (3) 不同编程语言编写的程序只要按照函数调用约定就可以调用同一个DLL函数;

 (4)适用于大规模的软件开发,使开发过程独立、耦合度小,便于不同开发者和开发组织之间进行开发和测试

3 不足之处

 (1) 使用静态链接生成的可执行文件体积较大,包含相同的公共代码,造成浪费;

 (2) 使用动态链接库的应用程序不是自完备的,它依赖的DLL模块也要存在,如果使用载入时动态链接,程序启动时发现DLL不存在,系统将终止程序并给出错误信息。而使用运行时动态链接,系统不会终止,但由于DLL中的导出函数不可用,程序会加载失败;速度比静态链接慢。当某个模块更新后,如果新模块与旧的模块不兼容,那么那些需要该模块才能运行的软件,统统撕掉。这在早期Windows中很常见。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sunweixiang1002/article/details/53179940

智能推荐

小米路由器刷机流程_misfa的博客-程序员秘密

1. 打开MiWiFi开发板官网,下载 ROM For Mini开发版,下载完毕放入U盘,并将包名改为miwifi.bin (网址:http://www.miwifi.com/miwifi_download.html-->ROM-->ROM For Mini开发版)2.断开路由器的电源,将U盘插入路由器的USB接口;用细长的工具按住reset后,接通电源,待路由器指示灯变为黄灯

制作GHOST_weixin_34062329的博客-程序员秘密

如果你封装的系统想要装在cd盘上就必需保证你的gho文件在650M左右,怎样才能使文件这么小呢?首先你最好使用精简的xp系统来作为母盘,然后集成你需要的软件等,最后做ghost时一定要用-z9参数!!!系统分区最好使用fat32格式的,从网上看了很多文章,好像这个格式可以更好的压缩,不知道各位发现没有,YLMF做的盘子也都是fat32格式的,系统还原后才提示的转换成NTFS格...

O2OA平台消息提醒配置_o2oa 服务调用消息_tangxl_99的博客-程序员秘密

平台消息提醒配置O2OA服务器提醒了配置文件,支持自定义系统内部分事件的消息提醒类别。一、消息提醒配置文件文件路径:o2server/config文件名:messages.json注意:如果o2server/config目录下没有该文件,请从o2server/configSample目录中COPY一份到o2server/config目录中,直接在configSample目...

SQL Server 2017的安装注意事项和基本操作_sql 2017 配置 sa密码_11景的博客-程序员秘密

一、SQL Server 2017的安装及注意事项学生党可以下载这个版本,免费又好用(注意要下载SSMS)安装过程中注意:1.要 将【TCP/IP】启动打开“SQL Server配置管理器”,展开【SQL Sever网络配置】,把【MSSQLSERVER的协议】中的【TCP/IP】开启。2.设置sa登录时失败情况解决方法(1) 以Windows身份验证登录(2) 修改sa登录的...

J2SE图书管理系统(6)——图书类别修改、删除功能_程序员的时光的博客-程序员秘密

1.数据访问层:com.java.dao;在之前建好的BookTypeDao类里面增加修改和删除的方法://图书类别修改方法 public int update_Book(Connection con,BookType booktype) throws Exception{ String sql="update t_booktype set bookTypeName=?,book...

python os.path模块常用方法详解_genous110的博客-程序员秘密

os.path模块主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法。更多的方法可以去查看官方文档:http://docs.python.org/library/os.path.html1.os.path.abspath(path)返回path规范化的绝对路径。os.path.abspath(‘test.csv’)‘C:\Python25\test.csv’...

随便推点

html DOM 的继承关系_weixin_33854644的博客-程序员秘密

零散的知识聚合在一起,就会形成力量,就有了生命力。如各种语言的开发框架, 都是右各个碎片化的功能聚合在一起,构成有机地整体,便有了强大的力量。will be powerful! 如: jquery 库, angular  cakephp 库 ..and so on...------------------------------------------------------------...

csdn原力的一件小事_csdn发文章不涨原力_heianduck的博客-程序员秘密

我来csdn已经好几年了,最初只是查查东西,毕竟那时候还没转编程。 几个月前,开始尝试写点东西,回答点问题,也坚持每天打卡,毕竟是上班族,不是长时间留在csdn。最终获得了3000+粉丝,也有点小小的收益。 每天签到的同时,有少量的money,原力是正的,还能加倍。不过前阵子想弄bdd到微信头像,结果审核没通过,扣了近200分,我能理解。 不过今天也是负的,就很奇怪,可能我没读懂xsdn增长规则。最近一段时间,工作比较忙,没时间逛csdn,所以没写文章,也没答题,所以最近原力增...

CentOS7没有eth0网卡_centos7 eth0 起不来_ZL小屁孩的博客-程序员秘密

CentOS7没有eth0网卡  CentOS7系统安装完毕之后,输入ifconfig命令发现没有eth0,不符合我们的习惯。而且也无法远程ssh连接,    这个问题解决起来还算简单:    一,永久搞定    1.进入目录/etc/sysconfig/network-scripts/    2.将文件ifcfg-ens33重命名为ifcfg-eth0;   

oracle异构rman迁移_lixz_2008的博客-程序员秘密

目前rman支持的异构恢复、还原和复制版本及对应的平台如下:For Oracle Database 10g Release 2 and above releases: Solaris x86-64 Linux x86-64 HP-PA HP-IA Windows IA (64-bit) / Windows (64-bit Itanium) Windows 64-b

种子文件转成为磁力链接 下载BT磁力转换小工具_weixin_30300523的博客-程序员秘密

种子文件转成为磁力链接下载BT磁力转换小工具 可以将BT种子文件转成磁力链接,相信很多很多朋友都需要用到,毕竟种子是已附件文件形式存在的,还需要服务器存放,并且下载也需要 BT Tracker ,现在的问题是,越来越多的服务器被干掉了,电驴的服务器也差不多快关完了,是时候用新格式下载了。 介绍下磁力链接。磁力链接,简单的说:类似下面这...

安装linux固态硬盘,Ubuntu安装和优化SSD硬盘的方法,你知道吗?_weixin_39986466的博客-程序员秘密

SSD是固态驱动器。在Ubuntu下安装后,您需要优化设置以更好地使用SSD硬盘。以下编辑器将向您介绍SSD硬盘驱动器的Ubuntu安装和优化方法。有兴趣的朋友不妨来了解一下。安装1.下载Ubuntu CD映像2.使用u盘进行安装这时,计算机没有可用的CD-ROM驱动器。使用UltraISO的“写入硬盘映像”将ISO文件写入USB闪存驱动器。3.安装大多数过程与常规安装方法相同。 /挂载点分配20...

推荐文章

热门文章

相关标签