动态链接和静态连接的优缺点_动态链接和静态链接的优缺点_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

智能推荐

Linux下安装配置Oracle_init:cannotfiand_一梦三四年的博客-程序员秘密

Linux下安装配置Oracle1环境准备1.1.linux系统安装  版本RHAS4:RedHat Enterprise Linux Advance Server 4.01.2.检查环境  Hard Disk Space[[email protected]  /]#df –h (目标安装目录) >2 G +1G(软件包源目录) /tmp >400M  Mem>1

C++ count函数的用法(可以用作统计个数)_count函数c++_zhouzhouzhou_li的博客-程序员秘密

algorithm头文件定义了一个count的函数,其功能类似于find。这个函数使用一对迭代器和一个值做参数,返回这个值出现次数的统计结果。编写程序读取一系列int型数据,并将它们存储到vector对象中,然后统计某个指定的值出现了多少次(代码中向量的那种方式)。 #include <iostream>#include<vector>#include&l...

LightOJ 1028 - Trailing Zeroes (I) (求一个数的因子数)_weixin_30411997的博客-程序员秘密

题意:http://www.lightoj.com/volume_showproblem.php?problem=1028求数字n有多少个因子数 不包括1#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<qu...

【Scikit-Learn 中文文档】线性和二次判别分析 - 监督学习 - 用户指南 | ApacheCN_那伊抹微笑的博客-程序员秘密

中文文档: http://sklearn.apachecn.org/cn/0.19.0/tutorial/basic/tutorial.html英文文档: http://sklearn.apachecn.org/en/0.19.0/tutorial/basic/tutorial.html官方文档: http://scikit-learn.org/0.19/GitHub: h

2020年第十五届全国大学生智能汽车竞赛技术报告_卓晴的博客-程序员秘密

第十五届全国大学生智能汽车竞赛技术报告下载 01基础四轮组 百度网盘下载链接::链接: https://pan.baidu.com/s/1SBmpET6oNkAUszGZVTQ8ow 提取码: dp9t序号技术报告名称1上海海洋大学 努力拿奖才队 基础四轮组.docx2东北大学 希望车没事队 四轮组技术报告.docx3中南民族大学 北纬30点49 基础四轮组.pdf4中国海洋大学 天生一队 四轮组.pdf5中国计量大学 赛博1

java 强制性异常与非强制性异常_一只小小肥羊的博客-程序员秘密

java的异常处理机制是一项相当灵活的技术。也是java的特色。项目做的够不够出色,很大一部分取决于异常的处理。如何自定义异常,是该try catch还是该throws,这些都是我们该注意的方面。 java中的异常分为两大类,强制性异常(CheckedException)和非强制性异常(UncheckedException)。而java中除了RuntimeException外,都是强制性异常。 ...

随便推点

jquery实现表格导入到Excel(加图片)_weixin_30553777的博客-程序员秘密

话不多说直接上代码第一步:导入jquery的插件https://github.com/rainabba/jquery-table2excelHTML部分:第二步:添加一个按钮<button type="button" class="btn btn-default bt_derive">导出</button>以及添加一个表格,这里需要注意一...

Reading Note(8) ——GNN for DSE Optimization_Zheyuan Zou的博客-程序员秘密

这部分作为全文的摘要, 和上一篇AutoDSE一样,提出了当前开发FPGA加速器的主要难点在于FPGA的开发门槛太高。另一方面虽然HLS的诞生在一定程度上缓解了这个问题,但是它在很多层次上涉及到HLS参数的选择,这个解决空间是非常大的,这个选择非常依赖于设计者的经验。另一方面,从HLS工具获得结果反馈耗时也非常大,一般在几分钟到数小时。这篇工作针对这种情况开发了DSE-GNN框架,主要方法是通过GNN来拟合HLS模型来使得它可以应用于非常广泛的应用场景,从而使得设计者在毫秒级就可以得到。

Python之ipython、notebook、matplotlib安装使用_weixin_33785108的博客-程序员秘密

Python之ipython、notebook、matplotlib安装使用交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码。linux上你只需要在命令行中输入 Python 命令即可启动交互式编程Window上在安装Python时已经已经安装了默认的交互式编程客户端备注:>中文编码#!/usr/bin/python#-*-cod...

xp系统怎样连接打印机服务器,XP sp3 系统中怎么添加网络打印机的图文教程_丛零的博客-程序员秘密

相信很多小伙伴都知道,在打印机设备中如果有网络接口,那么我们就可以通过网络连接电脑了,但是有的小伙伴并不知道怎么给电脑添加网络打印机。其实方法并不难,下面小编就以WinXP系统为例,给大家分享一下XP sp3 系统中怎么添加网络打印机的图文教程,一起来看看吧。首先我们通过开始菜单打开打印机和传真的窗口。在打印机和传真窗口中继续点击添加打印机。在添加打印机向导中点击下一步,选择连接到此计算机的本地打...

XML的基本使用_"xml <?xml version=\"1.0\" encoding=\"utf-8\" stan_weixin_44945658的博客-程序员秘密

1 XML1.1 XML概述Extensible Markup Language可拓展标记语言用途:1. 数据存储,小型数据库,存在一定的CRUD操作可行性2. 网络端数据的传输3. JavaWEB框架项目配置文件Spring Druid …w3c万维网联盟指定的规范1.2 基本语法1. XML文件后缀名是.xml2. XML第一行是对于当前文件的定义声明3. XML...

bpsk matlab,基于MATLAB的BPSK信号仿真分析_菊果子的博客-程序员秘密

盖勇刚 李红摘 要:文章在深入分析BPSK信号工作机理的基础上,采用MALTAB为仿真工具,实现了对BPSK信号的仿真。进一步,借助仿真结果验证了BPSK信号产生和接收机理的正确性,从而为后续BPSK信号的应用奠定了理论基础。关键词:MALTAB;BPSK;仿真中图分类号:TP391.9 文献标志码:A 文章编号:2095-2945(2018)23-0060-02Abstract: Based ...

推荐文章

热门文章

相关标签