动态连接库(DLL- Dynamic Link Library)

本文详细介绍了Windows平台上动态链接库(DLL)的工作原理和流程,包括编译阶段的头文件定义、链接阶段的.lib文件生成以及运行阶段的.dll加载。讨论了DLL的分类、静态加载、动态加载方式,以及DLLMain函数、资源切换、线程处理等相关问题,还提及了相关工具如dll2lib和dependency的使用。
摘要由CSDN通过智能技术生成

动态连接库(DLL- Dynamic Link Library) 

链接库是个很不错的想法,直接以二进制形式供用户使用,而免除用户维护代码的麻烦,或者避免用户看到实现代码.

分类

Windows系统上链接库分为2种, 静态链接.lib 和动态链接.dll ,
而动态链接库按载入方式又分2种, Dynamic Load 和 Static load

链接库类型 载入方式 代码分布 用户需要的二进制文件
static link library 无需载入 .lib包含实际代码, link时合并进用户程序 .lib
dynamic link libray static load, 启动时隐式载入 .lib包含接口定义, 代码独立为.dll .lib .dll
dynamic link libray dynamic load, 使用时通过系统函数显式载入 .lib包含接口定义, 代码独立为.dll .dll

这里主要谈 Windows平台下的 static load dynamic link library.

流程

生成DLL和使用DLL的过程分三个阶段:
1. 编译阶段 (头文件 .h)
dll工程中在头文件中对导出内容(function, class, type, object, variable)进行定义.
而用户编译时需要引入这个头文件才能在代码中使用dll导出的定义.
2. 链接阶段 (库文件 .lib)
dll工程在link阶段会生成.lib
用户link时需要 这个.lib

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值