静态库,动态库,隐式动态链接,显示动态链接究竟是怎样的?

二进制重用包括了静态库和动态库,静态库历史早与动态库,动态库相对复杂一些。动态库创建以后可以输出三种文件:头文件,导入库(.lib)和DLL。

动态库的动态链接过程有两种:装入时动态链接运行时动态链接

装入时动态链接也称为隐式动态链接,客户应用程序在编译链接成可执行程序时需要导入头文件和导入库(.lib),在程序启动装载时加载整个动态链接库(.dll)到客户应用程序的内存地址空间;导入库是一些动态库提供给客户二进制程序在构建时使用的符号,不是动态库的实现内容。

运行时动态链接也称为显示动态链接,客户应用程序在代码中使用LoadLibrary、GetProcAddress和FreeLibrary加载、使用和释放动态库,即在执行到相应代码时(运行时)才去加载动态库的相关函数。此时项目构建不需要导入库(.lib)和引入动态库头文件,只需要dll,但是需要知道dll里面函数是啥样的。

Windows DLL和静态库的创建和使用

https://www.cnblogs.com/daocaoren/archive/2012/05/30/2526495.html

https://www.cnblogs.com/chechen/p/8676226.html

 

VS2019使用自己或者第三方的静态库、动态库(微软官方):

https://docs.microsoft.com/en-us/cpp/build/adding-references-in-visual-cpp-projects?view=vs-2019

 

VS2019创建和使用你自己的静态库(微软官网)

https://docs.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-static-library-cpp?view=vs-2019

 

VS2019创建和使用你自己的动态库(微软官网)

https://docs.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=vs-2019

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值