动态链接库与静态链接库

概念

动态链接:lib文件一般是一些索引信息,记录了函数在DLL文件中的入口信息;dll文件在运行时加载到进程空间中,包含了要执行的代码逻辑,因此可知动态库中的被引用函数不会包含在可执行文件中,所以应用程序最后发布时,需要exe与dll文件一起发布。

静态链接:lib包含了函数代码(实际是各种cpp编译生成的obj的集合),在编译阶段直接将代码加入程序中;链接器从lib中获取所有的被引用函数,生成可执行文件。

VS中使用方法

使用动态链接:

方法一:1、properties->C/C++->General->Additonal Include Directories中加入头文件目录,引入头文件

                2、引入lib库(工程属性设置或者使用#pragma comment)

                3、把dll文件放到工程所在目录

方法二:将dll文件放到合适位置,然后使用LoadLibrary;合适位置指的是应用程序能找到该dll文件,寻找顺序:1、exe文件所在目录,2、工程所在目录,3、windows系统目录,4、windows目录,5、环境变量Path

使用静态链接:

1、加入包含要引入函数的头文件

2、Properties->Linker->General->Additional Library Directories中加入lib文件所在目录

3、Properties->Linker->Input->Additional Dependencies中加入lib文件名

特点比较

静态链接在程序运行时不需要再挂载动态库,程序发布时仅发布exe即可;缺点是exe文件较大,没有动态库的灵活性,新版本要更新exe。

动态链接具有灵活性,有时发布新的版本,只需更新dll文件即可,exe不需要动,而且可执行文件体积不大。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值