Windows API笔记(十)动态链接库

Windows API笔记(一)内核对象
Windows API笔记(二)进程和进程间通信、进程边界
Windows API笔记(三)线程和线程同步、线程局部存储
Windows API笔记(三)线程同步
Windows API笔记(四)win32内存结构
Windows API笔记(五)虚拟内存
Windows API笔记(六)内存映射文件
Windows API笔记(七)堆
Windows API笔记(八)文件系统
Windows API笔记(九)窗口消息
Windows API笔记(十)动态链接库
Windows API笔记(十一)设备I/O



3个最重要的DLL:

  1. kernel32.dll,它由管理内存、进程和线程的函数组成
  2. user32.dll,它由执行用户界面的任务(如创建窗口和发送消息)的函数组成
  3. gdi32.dll,它由绘图和显示文本的函数组成

Windows还有几个其他的dll,含有执行更专门的任务的函数。

  1. ADVAPI32.dll,保护了有关对象安全、注册表管理和事件记录的函数
  2. COMDLG32.dll,包括了通用对话框(如File Open和File Save)
  3. LZ32.dll,支持文件解压缩

在本章中,我们讨论如何为自己的应用程序创建Win32 DLL。而且,本章的末尾还讲述了一些使用DLL的高级技术。

1. 创建动态链接库

应用程序把DLL映射至进程的地址空间的方式:

  1. 隐式的加载时连接
  2. 显式的运行时连接

1.1 映射DLL到进程的地址空间

1. 隐式链接

当连接一个应用程序时,必须指定要链接的一组LIB文件。每个LIB文件包含了DLL文件允许应用程序调用的函数的列表。当操作系统加入exe文件时,系统查看exe文件映像的内容来看要装入哪些DLL,而后视图将需要的DLL文件映像映射到进程的地址空间中。

寻找DLL时,系统在下列位置查找文件映像:

  1. 包含exe映像文件的目录
  2. 进程的当前目录
  3. Windows系统目录
  4. Windows目录
  5. path环境变量中的目录

2. 显示链接

调用LoadLibrary或LoadLibraryEx函数时,DLL文件能被显示地映射至进程的地址空间。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值