IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> vs2017静态库和动态库的创建与使用简明教程 -> 正文阅读

[开发工具]vs2017静态库和动态库的创建与使用简明教程

静态库创建和使用

创建

  1. 打开vs2017点击创建新项目,选择静态库

  2. 在StaticLib.cpp文件下写实现,再创建一个对应的头文件写声明:

请添加图片描述

请添加图片描述

  1. 项目->生成 即可在输出文件夹下得到对应的lib文件:

在这里插入图片描述

使用

新建一个项目,点击属性,配置三条款项:

  1. VC++目录的包含目录和库目录分别加入lib对应头文件的位置和lib文件的位置;
  2. 链接器->输入 添加lib文件的名字;

请添加图片描述
请添加图片描述

在需要的项目文件中添加lib对应的头文件,之后使用函数即可:

请添加图片描述

易错点

  1. 配置项目属性时一定要看好自己运行的环境是Debug还是Release,是X86还是X64,配置一定要对应(例如配置的是Debug的属性结果Release没配置还去生成Release版本);
  2. lib文件创建在x86还是x64那么使用这个lib时项目也只能运行在对应的版本上!否则会报LINK2019:

请添加图片描述

动态库创建和使用

创建

  1. 新建项目->具有导出项的动态链接库(不然可能不会生成lib文件,lib是指向dll的桥梁):

请添加图片描述

  1. 创建好该项目后,会发现有一个与项目名称相同的h文件和cpp文件,里面写好了基本的代码,只需要在其基础上模仿添加自己的业务代码即可(注意无论是函数还是变量都要有DLL3_API这个宏,表示导出项):
    请添加图片描述

  2. 在cpp文件中实现自己的业务函数:
    请添加图片描述

  3. 生成代码(注意之后使用dll和生成dll所在的平台要一致,x86或x64)

  4. 生成完毕后会在对应文件夹(e.g. DEBUG)下找到dll文件和lib文件:

在这里插入图片描述

使用

  1. 创建一个新项目;
  2. VC++目录的包含目录和库目录分别加入lib对应头文件的位置和lib文件的位置;
  3. 链接器->输入 添加lib文件的名字;
  4. 将dll文件复制到项目DEBUG文件夹下或者Release文件下(exe在哪就放哪);

请添加图片描述

  1. 编译项目即可;

前三步和使用静态库是一致的,可以理解为动态库是通过这个静态导入库导入的(该导入库仅包含 DLL 文件中存储的函数信息,无具体实现);

注意

如果不想每一次都拷贝dll文件到对应exe路径下,在vs中可以这样设置:

项目->属性->调试->环境

输入 path=dll文件的路径

请添加图片描述

DLL的好处

DLL文件中的函数可以被多个程序共用。因此,借助该功能可以节约内存和磁盘。此外,在对函数的内容进行修正时,还不需要重新链接(静态链接)使用这个函数的程序。

Others

lib一般需要h文件提供api;dll一般需要lib导入库+对应的h文件提供接口。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-02-01 20:49:17  更:2022-02-01 20:51:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:25:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码