VS2019:C++程序lib静态库、dll动态库的生成和使用
一、静态库
静态库的使用需要(1).h头文件;(2).lib静态库文件;
1、静态库生成
(1)项目-右键属性-常规-配置类型-选静态库;
(2)点击生成,Debug文件夹下出现lib静态库;
2、静态库使用
(1)新建一个测试项目,将生成的funAdd.h和funAdd.lib复制到新工程目录下;
(2)demo调用成功
二、动态库
动态库的使用需要(1).h头文件;(2).lib静态库文件;(3).dll动态库文件;
1、动态库生成
动态库文件的生成稍麻烦一些;
(1)首先创建新项目,类型选“动态链接库”;
可以看到生成的项目已经默认添加了framework.h,pch.h,framework.cpp,pch.cpp;
(2)默认文件无需更改,添加我们自己编辑的funAdd.h和funAdd.cpp;
其中在funAdd.cpp中需要引用pch.h,(如下)
funAdd.h文件的声明需要添加__declspec(dllexport)函数,(如下图)
(3)如果按照 “一、静态库、(1)静态库生成”步骤会发现只生成了.dll 文件而没有.lib文件;
此时首先需要:项目右键-添加-新建项-选择.def文件添加,添加后不需要任何改动;
添加.def文件后,点击生成解决方案,发现生成了 .dll 和.lib两个文件;
2、动态库的使用
(1)新建一个demo项目,将dll,lib,和.h头文件拷贝至目录下;
(2)在主程序中引用,成功调用;
附上静态库、动态库的区别 :
windows中静态库lib和动态dll的区别及使用方法_dxzysk的专栏-CSDN博客
VS2019:C++程序lib静态库、dll动态库的生成和使用相关推荐
- C++中.lib静态库、.dll动态库的生成及调用2
关于动.静态库的介绍及静态库的生成及调用参见:C++中.lib静态库..dll动态库的生成及调用<1>,本文主要介绍基于VS2015平台的动态库dll的生成及调用方法. 一.动态库的生成 ...
- C++中.lib静态库、.dll动态库的生成及调用1
一.前言 1.动态链接库(dll)与静态链接库(lib): 动态链接库(dll)是一个可以被其他应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源.在链接步骤中,连接器将从库文件取得所需的代 ...
- VC环境下的静态库(lib)使用和动态库(Dll)的使用(清晰版)
VC环境下的静态库使用 一. 静态库包括.lib和.h文件,在工程中使用静态库分为3步: <1> 在工程中加入静态库,有三种方法: **方法一:项目设置中引用.lib,project-& ...
- 【Cmake实战:番外】库、动态库和静态库(.dll,.so,.lib,.a)
[Cmake实战:番外]库.动态库和静态库(.dll,.so,.lib,.a) 一.什么是库 二.库的种类 三.命名方式 四.动态库和静态库的特点 五.如何知道一个可执行程序依赖哪些库 六.linux ...
- C/C++库文件全了解(包含静态库、动态库,包含windows、linux,包含dll、lib、so)
目录 C/C++库文件全了解 一. 前言 二. 名词解释 2.1. windows的静态库:xxx.lib 2.2. windows的动态库:xxx.dll 2.3. linux的动态库:libxxx ...
- .h头文件 .lib库文件 .dll动态库文件之间的关系
.h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的. 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件.如果要完成源代码的编译和链接,有头文件和li ...
- 如何判别lib文件是静态库还是动态库的导入文件呢
我么知道lib文件存在两种情况: 一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接 库dynamic link librar ...
- C程序编译过程及常见选项--静态库和动态库
C程序编译过程及常见选项--静态库和动态库 前言 一.gcc详讲 1.1 编译过程 1.2 预处理 1.3 编译(Compilation) 1.4 汇编(Assembly) 1.5 链接(Linkin ...
- C++ 控制台程序,窗口程序,静态库,动态库的区别
创建C++程序 控制台程序 创建完成发现编译器给我们生成了一个.cpp文件,并且存在main函数(说明可以运行) 按F5编译链接并运行 出现DOS窗口(但我们说写与窗口相关的代码,说明是操作系统提供 ...
最新文章
- postman设置测试环境
- 《TCP/IP详解》学习笔记(二):数据链路层
- 李航:未来若干年,AI 技术发展可能会进入平缓期
- FCPX插件:Color Titles动画彩色文本标题
- 高德软件有限公司python试题 及 答案
- Python之进程+线程+协程(multiprocessing多进程模块)
- Ubuntu 实现点击菜单栏图标最小化程序
- 微信小程序云开发教程-微信小程序的JS基础-js文件基本结构与生命周期
- Java 概述、Java语言的特点、什么是跨平台性、Java语言平台版本、什么是jdk,jre、JDK和JRE的下载安装...
- #开源的ZYNQ+AD936X SDR软件无线电
- excel学习-批量填充单元格
- 如何把多个文件夹里的文件提取出来?
- 进击的拼多多,淘宝如何应对
- 屏蔽百度搜索右边的热点和广告推广
- 服务器3D场景建模(三):体素场景(一)
- Leetcode SQL 刷题学习:175. 组合两个表
- 快解析内网穿透,速度快 不限速 不限流
- 蓝屏代码大全(留着自己看)
- NetFPGA-SUME开发环境安装
- 数独解、多解(数据结构、栈、回溯法)
热门文章
- c语言扫雷游戏计时功能_C语言实现扫雷游戏(可以自动展开)
- 视觉问答学习(一)——视觉问答的动态记忆网络DMN+(tensorflow实现)
- Sqlserver 英文月份格式时间字符串转换为数字型日期
- 终于等到了!十位Java架构师整理的“阿里P7”养成计划
- 总结自己大学学习Java过程感悟
- Cannot connect:由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。192.168.0.113:22
- ev3和python哪个好_乐高教育EV3比SPIKE Prime更好的十个理由!
- PHP对接支付宝支付APP端
- seaborn直方图、散点图与回归分析图的绘制
- 申请加拿大计算机研究生如何写未来计划,加拿大学习计划书模板 (study plan)