[静态库和动态库][VS2022]

news2024/10/7 2:18:52

静态库和动态库

  • 前言:
  • 一、静态库
  • 二、动态库
  • 三、静态库和动态库的使用

前言:

我们写代码,可以分模块去写,最后可以协作,能整合起来;
可以吧代码的实现和声明分离。
比如:我的这篇博客C语言猜拳小游戏就用到了模块化编程
什么是库:
库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。

一、静态库

静态库编译成的文件会比较大,这类函数库最大的优点就是编译成功的可执行文件可以独立运行,而不再需要向外部要求读取函数库的内容;但是从升级难易度来看明显没有优势,如果函数库更新,需要重新编译。

二、动态库

动态库在编译的时候,在程序里只有一个“指向”的位置而已,也就是说当可执行文件需要使用到函数库的机制时,程序才会去读取函数库来使用;也就是说可执行文件无法单独运行。这样从产品功能升级角度方便升级,只要替换对应动态库即可,不必重新编译整个可执行文件。

三、静态库和动态库的使用

比如我们写了一个函数,想卖出去赚钱,不想让别人看到我写的函数怎么实现,只给一出函数声明(在头文件里),我们该怎么做呢?
3.1创建工程,创建文件
在这里插入图片描述
3.2解决方案资源管理器->project_7_12game->(右击)弹出快捷菜单->单击属性->弹出属性页窗口->找到配置属性点击常规->找到配置类型,在配置类型的右边找到一个向下的箭头->单击箭头,在下拉列表里点击静态库。
在这里插入图片描述
在这里插入图片描述
3.3生成一个.lib文件
在这里插入图片描述

可以在资源管理器里通过路径找到它:
在这里插入图片描述
把这三个文件经过编译生成的.lib文件叫静态库
我们打开这个文件,它会显示是乱码,因为是一个二进制文件
在这里插入图片描述
3.4我们卖文件就是把这个.lib文件还有.h文件卖出去,别人就没法看到函数是怎么实现得了。
3.5使用.lib文件和.h文件
编写一个程序,用到.lib文件和.h文件。
在这里插入图片描述
找到文件夹
把.lib文件和.h文件添加进去
在这里插入图片描述
在工程里把头文件打开
在这里插入图片描述
打开了;
在这里插入图片描述
这时候我们要用game.h文件的函数,导入静态库(.lib文件)
#pragma comment(lib,“Project_7_12game.lib”)//导入静态库
在这里插入图片描述
按ctrl+F5就可以调用.h里的函数

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【雕爷学编程】Arduino动手做(160)---HLK-V20离线语音模块

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…

数据从发出到接收的细节介绍{封装与解封装}

系列文章目录 数通王国历险记(5) 目录 前言 一,数据封装的全过程 1.1,应用层的封装形式 1.2,传输层的封装形式 理解: 1.3,网络层的封装形式 理解: 1.4,数据链路层…

云计算——云计算关键技术

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​ 目录 前言 一.云计算关键技术 1.虚拟化技术 2.分布式数据存储技术 (1&…

数据可视化之Tableau可视化||绘制标靶图

标靶图是一种用于评估、测试和优化计算机视觉算法的基准测试工具。它通常由多个具有不同特征的目标物体组成,如车辆、行人、交通信号灯等,同时包括各种不同的复杂场景,如城市街道、高速公路和人行道等。通过使用标靶图,研究人员可以检验算法的准确性、速度和适应性,同时拓…

【Linux指令集】---ls指令(超详细)

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【Linux专栏】🎈 本专栏旨在分享学习Linux的一点学习心得,欢迎大家在评论区讨论💌 演示环境&#xff1…

公网IP证书

一、IP证书是什么? ip证书是用于公网ip地址的SSL证书,与我们通常所讲的SSL证书并无本质上的区别,但由于SSL证书通常颁发给域名,而组织机构需要公共ip地址的SSL证书,这类SSL证书就是我们所说的ip证书。ip证书具有安全、…

循环工作定时控制器/多级循环定时控制器电路设计

循环工作定时控制器 该电路可设定设备的循环周期时间以及每次工作的时间,可以让设备按照设定的时间不断地循环工作,可应用于定时抽水、定时换气、定时通风等控制场合。 一、电路工作原理 电路原理如图 15 所示。 电路通过电容C2和泄放电阻R3降压后&am…

2024年度可达鸭社群开放了,全新玩法

大家好,今天我们来介绍2024年可达鸭区块链社群的新玩法。 6个策略 如果你是我们的老粉,那么不用过多介绍,在过去一年里,我们分享了中短线、横截面等策略共6个。如下图所示: 时光荏苒,岁月如梭&#xff0c…

Java 动态规划 Leetcode 746. 使用最小花费爬楼梯

方法1&#xff1a; 从前往后进行分析 代码展示&#xff1a; class Solution {public int minCostClimbingStairs(int[] cost) {int length cost.length;//定义dp数组int[] dp new int[length 1];//初始化dp[0] 0;dp[1] 0;//填充dp数组for (int i 2; i < length; i) …

OpenCVForUnity(三)图像的读写

文章目录 前言获得图像一、使用Imgcodecs.imread()读取图片二、关于imread()方法参数三、关于cvtColor()方法四、Utils.texture2DToMat()方法 保存图像五、imwrite()保存图片: 前言 OpenCV工具主要是对于图像的处理&#xff0c;今天我们简单的来介绍一下如何获取一张图片&#…

基于 NNCF 和 Optimum 面向 Intel CPU 对 Stable Diffusion 优化

基于隐空间的扩散模型 (Latent Diffusion Model)&#xff0c;是解决文本到图片生成问题上的颠覆者。Stable Diffusion 是最著名的一例&#xff0c;广泛应用在商业和工业。Stable Diffusion 的想法简单且有效: 从噪声向量开始&#xff0c;多次去噪&#xff0c;以使之在隐空间里逼…

HTML元素中有中文、英文、符号、数字。第一行没排满就自动换行的解决办法:word-break:break-all的使用

word-break: break-all 是一个CSS属性&#xff0c;用于控制文本在容器中的换行方式。它的作用是强制在任意字符之间进行换行&#xff0c;即使这样可能会导致单词被分割。 具体来说&#xff0c;word-break 属性有以下几个取值&#xff1a; normal&#xff08;默认值&#xff09…

火伞云WAF产品的主要特点

Web应用程序防火墙&#xff08;WAF&#xff09;是抵御所有DDoS攻击的绝佳防御措施。它阻止恶意流量试图阻止应用程序中的漏洞。火伞云WAF通过安全专家的全天候监控支持DDoS保护解决方案&#xff0c;以识别虚假流量激增并在不影响合法流量的情况下阻止它们。 您可以在互联网和原…

win10系统切换到macOS,开发环境与软件资源,目录清单

文章目录 1、生活2、文书3、开发4、算法5、美术6、科研 1、因为考研自习室或学校图书馆&#xff0c;随身携带游戏本&#xff08;全能本&#xff09;受限于不插电源就不续航和掉性能&#xff0c;以及风扇噪音非常大&#xff0c;以及发热很烫等问题。 2、所以想考虑给主力机换个…

海外市场营销必备!八大技巧助力品牌出海

1、建立品牌故事和品牌形象&#xff1a;创造一个独特而有吸引力的品牌故事&#xff0c;通过品牌形象和价值观来吸引目标受众。这将帮助你在竞争激烈的市场中脱颖而出&#xff0c;并与消费者建立情感连接。 2、本地化和文化适应&#xff1a;理解并尊重目标市场的文化、习惯和价值…

智能仪表在光伏系统中的应用 安科瑞 许敏

光伏储能逆变器 应用场景 户用储能&#xff0c;小型工商业储能&#xff0c;微电网储能 功能 1.对电能参数进行采样计量和监测&#xff0c;逆变器或者能量管理系统&#xff08;EMS&#xff09;与之进行通讯&#xff0c;根据实时功率及累计电能实现防逆流、调节发电量、电池充…

操作Eureka出现Cannot execute request on any known server

操作Eureka出现Cannot execute request on any known server 客户端操作Eureka出现Cannot execute request on any known server 这可能是因为你没有在application.yml中配置 spring.application.name 导致注册到eureka上的状态名称不对。通常注册到Eureka默认为 ip:服务名:端…

Java字符串比较的方法(3种)

1.equals()方法 equals()方法将两个字符串每个字符是否相同进行逐一比较&#xff0c;若相同返回true反之返回false&#xff0c;对于字符的大小写也在检查范围内&#xff0c;equals()方法格式如下&#xff1a;str1.equals(str2); 程序实例 public class Demo {public static voi…

熬夜敲代码不伤眼,选好灯具很重要

文章目录 一、引言1.1 程序员的痛点&#xff1a;长时间使用电脑对眼睛的损害1.2 保护眼睛的重要性 二、明基ScreenBar Halo的保护眼睛功能2.1 自动调光&#xff1a;根据环境光调整亮度2.2 非对称光学设计&#xff1a;减少反光和刺眼2.3 沉浸式灯光&#xff1a;照亮全场视野&…

物流RFID设备在实际中的应用如何?

随着现代物流行业的快速发展&#xff0c;传统条码技术信息量少&#xff0c;易脏污损毁&#xff0c;耐用性不高等问题很难满足物流企业多样化的需求&#xff0c;物流RFID设备的应用也越来越广泛。下面我们就跟大家一起来分析一下&#xff0c;物流RFID设备可以在哪些场景中应用。…