Windows_VS中静态库与动态库加载

VS项目中的包含目录库目录附加包含目录附加库目录附加依赖项项目->属性->配置属性下进行配置,具体说明如下:

1 静态库加载

1.1 VC++目录

包含目录:即语句#include<xxxx.h>中的头文件xxxx.h的搜索目录
库目录:即.lib文件的搜索目录

1.2 C/C++:

常规->附加包含目录:即语句#include<xxxx.h>中的头文件xxxx.h的搜索目录(多项之间用分号;分割)

1.3 链接器:

常规->附加库目录:寻找.lib文件的搜索目录
输入->附加依赖项lib库文件名Tips: C++的库一般会把函数、类等声明放在*.h头文件中,具体函数、类等实现放在*.cpp或*.cc中。编译之后,.cpp,.cc,*.c会被打包成一个.lib文件,这样可以保护源代码)


1.4 配置区别

  1. 包含目录vs附加包含目录库目录vs附加库目录的区别
    包含目录:修改了系统的include宏的值,是全局的;
    附加包含目录:用于当前项目,对其他项目没有影响。
    注意:库目录附加库目录的区别同上;

  2. 包含目录vs附加包含目录库目录vs附加库目录的区别主要在于全局还是仅针对当前工程;若仅需要对某工程进行配置,则在附加包含目录附加库目录中添加即可。
    注意:要使用一个库,除了要include其头文件以外(附加包含目录),还要在链接过程中把lib加进去,即需要配置附加库目录附加依赖项(库文件名)。


1.5 某工程具体配置方法

为了提高程序的可移植性,通常会将第三库放在解决方案(.sln)或者工程(.vcxproj)文件所在的文件夹下;添加目录的时候添加相对目录,这样在其他电脑上运行时就不会出现配置的问题了。

注意相对路径是针对工程文件(*.vcxproj)而言的。

  1. 附加包含目录—添加工程的头文件目录:
    项目->属性->配置属性->C/C++ ->常规->附加包含目录:加上头文件的存放目录;
  2. 附加库目录—添加文件引用的lib静态库路径:
    项目->属性->配置属性->链接器->常规->附加库目录:加上lib文件的存放目录;
  3. 附加依赖项—添加工程引用的lib文件名:
    项目->属性->配置属性->链接器->输入->附加依赖项:加上lib文件名。

附加依赖项也可直接给带有路径(相对路径绝对路径)的lib文件,此时无需配置附加库目录

在这里插入图片描述
————————————————
版权声明:本文为CSDN博主「疯丶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012043391/article/details/54972127/

2 动态库加载

与静态库不同,动态库的加载有2种方式,分为隐式加载显示加载

2.1 隐式加载

所需文件:接口.h头文件dll文件lib文件
.h文件.lib文件加载方式与静态库加载完全一致。但.dll文件必须放在环境变量指定的目录下,通常是与目标.exe文件放在同一目录下。

2.2 显示加载

所需文件.h文件dll文件。理论上不需要.h头文件,但是前提是明确知道函数接口。
利用LoadLibrary()函数进行加载、利用FreeLibrary()函数进行卸载。如图2 动态库显式加载与卸载范例
图2 动态库显式加载与卸载范例

2.3 两种加载方式区别

  1. 显示加载使用灵活,需要时加载,用完卸载;
  2. 隐式加载伴随着整个程序的生命周期。

总结

库分为静态库动态库

  1. 静态库可执行文件.exe打包,动态库可执行文件.exe独立。
  2. 静态库加载需要:.lib文件.h文件;
  3. 动态库隐式加载需要.dll文件.h文件.lib文件;
  4. 动态库显示加载只需要.dll文件
    ————————————————
    版权声明:本文为CSDN博主「ShaYX1991」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/a369189453/article/details/81124685
  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值