第11 章 动态链接库 本章讨论了 Win32 动态链接库,也就是 DLL
动态链接库(Dynamic Link Library,简称DLL)是一些编译过的可执行代码模块,后缀名为
DLL,可以在应用程序中或其它 DLL 中被调用
在 Windows 环境中,DLL 可以实现多个应用程序共享代码和资源
DLL 的用途非常广泛,是 Windows 程序设计中的一个非常重要的组成部分
本章将从DLL 的一些基础知识讲起,说明如何在 Delphi 开发环境中创建和使用 DLL
1 概述 11
1 DLL 的概念 在开始介绍 DLL 的概念之前,先介绍一些有关 DLL 的一些术语如下: ¾ 应用程序,一个扩展名为
exe 的 Windows 程序
¾ 可执行文件,一个包含可执行代码的文件,它包括
dll 文件和
exe 文件
¾ 实例,当提到应用程序和 DLL 时,在内存中出现的可执行文件就是实例
Win32 系统通过实例句柄的方式来引用实例
例如,如果一个应用程序运行两次,就会有应用程序的两个实例,同时就有两个实例句柄
当一个 DLL 被调入时,实例及其相应的实例句柄同时产生
应该注意的是,这里所提的实例与类的实例不能混淆
¾ 模块,在 32 位 Windows 系统中,模块和实例可以说是同义的
而在 16 位的 Windows系统中,是建立一个模块数据库来管理模块的,一个模块对应一个模块句柄
在 Win32 中,应用程序的每一个实例都拥有自己的地址空间;所以,没有必要为模块单独指定标识符
不过,微软仍然保留了它自己的术语
注意一点,模块和实例是同一个概念
¾ 任务,Windows 是一个多任务(或任务切换)环境,所以它必须能够为运行的多个实例合理分配系统资源和时间
于是,Windows 建立一个任务数据库,这个数据库包括任务的实例句柄和其它必要信息,以此