动态库和静态库的新理解

旧理解(当初理解较浅,今再看到有新发现)

链接:

静态链接库和动态链接库区别_动态链接库和静态链接库的区别-CSDN博客

 由于本人不是做架构方面,给大佬打螺丝。长时间的惯性思维就是要使用其他项目的类或者函数,先导出成dll。然后那个项目附加依赖项添加lib。

重点:

1.lib后缀不单是叫静态库,还有另一个叫导入库。静态库和导入库是两个概念,一个是传统意义上的静态库,另一个是配合dll使用的导入库。(这个非常重要)

2.一个项目要引用另一个项目可以直接使用lib库,并不需要导出,但需要类的头文件。然后在附加依赖项添加lib。或者在使用的文件添加如下方法。

 

3.而使用动态库有两种方法:隐式链接调用显示链接调用

 隐式链接调用:就是平常打螺丝惯用的方法。导出要调用的类和函数,然后在要使用的项目附加依赖性,再附加上那些类和函数的头文件位置。

显示链接调用:平常非常少使用的方法。一般调用非C++语言编写生成的dll。要使用的话,需要在程序声明函数原型,解析dll里面的函数。

4.为什么要调用dll,不直接使用lib。(更新dll容易,这是很多软件惯用手法,这个老生常谈)

先看看下面的说法:

 

 

总结就是:

1.静态库中包含的是全部的源码信息,而动态库dll里面包含的是所需要的部分源码信息。而它提供的导入库lib只是做索引的符号信息(所占大小远小于静态库)。两种lib包含的信息不一样。

 2.静态库是将被调用的函数和数据复制一份到所使用的模块,而动态库只需要实现一次就行。比如两个模块使用了静态库里面的函数,这两个模块都需要复制两份内容到使用的模块内。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/543196.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机设计大赛 题目:基于大数据的用户画像分析系统 数据分析 开题

文章目录 1 前言2 用户画像分析概述2.1 用户画像构建的相关技术2.2 标签体系2.3 标签优先级 3 实站 - 百货商场用户画像描述与价值分析3.1 数据格式3.2 数据预处理3.3 会员年龄构成3.4 订单占比 消费画像3.5 季度偏好画像3.6 会员用户画像与特征3.6.1 构建会员用户业务特征标签…

基于Python django的人脸识别门禁系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、Python技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅&…

DC-DC电源管理芯片MC34063A介绍

MC34063A 为一单片 DC-DC 变换集成电路,内含温度补偿的参考电压源(1.25V)、比较器、能有效限制电流及控制工作周期的振荡器,驱动器及大电流输出开关管等。外配少量元件,就能组成升压、降压及电压反转型 DC-DC 变换器。…

学习通刷视频刷题脚本及安装使用过程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、安装插件二、复制脚本文件链接三、启动脚本四、登录学习通(切记一倍速就行不然被封哦)五、最好先把答题关掉先刷视频 前言 解决学习…

使用C语言计算1/1-1/2+1/3-1/4+...+1/99-1/100

观察算式,发现分子都是1,分母从1~100,所以可以使用for循环产生1~100之间的数。 另一个问题是,如何产生正负交替的符号?很简单,这个符号本质上就是往每一项前面乘一个系数:一或者负一。所以只需…

.Net Core 中间件验签

文章目录 为什么是用中间件而不是筛选器?代码实现技术要点context.Request.EnableBuffering()指针问题 小结 为什么是用中间件而不是筛选器? 为什么要用中间件验签,而不是筛选器去验签? 1、根据上图我们可以看到,中间件在筛选器之…

软件应用,物流运单填写模板,物流打印快递单教程,货运单怎么打印视频教程

软件应用,物流运单填写模板,物流打印快递单教程,货运单怎么打印视频教程 一、前言 以下软件操作教程以 佳易王物流货运管理系统软件V17.2为例说明 件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、物流管理系统打印&a…

外包就干了2个月,技术退步明显....

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

HDS-NAS分配资源并挂载win和linux

1、首先创建系统文件。 选择nas存储池 2、根据自己的需求创建相应的挂载方式 3、window配置 配置成功 最后即可在window系统网络位置映射网络即可, 格式为\\123.3.4.5\test 注:IP地址 4、liunx挂载方式 创建完成之后即可挂载,注意目的主…

深度学习-2.7 机器学习目标与模型评估方法

文章目录 深度学习目标与模型评估方法1. 深度学习目标与模型评估方法2. 手动实现训练集和测试集切分3. Dataset和DataLoader基本使用方法与数据集切分函数1.Dataset和DataLoader的基本使用方法2.建模及评估过程 4. 实用函数补充 深度学习目标与模型评估方法 1. 深度学习目标与…

C++ 入门篇

目录 1、了解C 2、C关键字 2、命名空间 2.1 命名空间的定义 2.2 命名空间的使用 3. C输入与输出 4.缺省参数 4.1 缺省参数的概念 4.2 缺省参数的分类 5. 函数重载 5.1 函数重载的概念 5.2 C中支持函数重载的原理--名字修饰 6. 引用 6.1 引用概念 6.2 引用…

3.15号arm

汇编语言 1. 汇编语言的组成 汇编文件中由伪操作、伪指令、汇编指令以及代码注释这几部分组成 伪操作: ARM的汇编中伪操作以.为前缀,所有的伪操作不占用内存空间,编译汇编时告诉编译器怎么编译当前文件,主要用来修改汇编内…