DLL
更新:2007 年 11 月
动态链接库 (DLL) 是作为共享函数库的可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个 DLL 副本的内容。
动态链接与静态链接的不同之处在于:动态链接允许可执行模块(.dll 文件或 .exe 文件)仅包含在运行时定位 DLL 函数的可执行代码所需的信息。在静态链接中,链接器从静态链接库获取所有被引用的函数,并将库同代码一起放到可执行文件中。
使用动态链接代替静态链接有若干优点。DLL 节省内存,减少交换操作,节省磁盘空间,更易于升级,提供售后支持,提供扩展 MFC 库类的机制,支持多语言程序,并使国际版本的创建轻松完成。
下列主题提供有关对 DLL 编程的详细信息。
本节内容
应用程序和 DLL 之间的区别
描述应用程序和 DLL 之间的基本区别。使用 DLL 的优点
描述动态链接的优点。DLL 常见问题
提供有关 DLL 的常见问题解答。将可执行文件链接到 DLL
描述与 DLL 的显式链接和隐式链接。初始化 DLL
讨论当 DLL 加载时必须执行的 DLL 初始化代码(如分配内存)。运行时库行为
描述运行时库如何执行 DLL 启动序列。LoadLibrary 和 AfxLoadLibrary
讨论如何使用 LoadLibrary 和 AfxLoadLibrary 显式链接到 DLL。GetProcAddress
讨论如何使用 GetProcAddress 获取 DLL 中导出函数的地址。FreeLibrary 和 AfxFreeLibrary
讨论当不再需要 DLL 模块时如何使用 FreeLibrary 和 AfxFreeLibrary。Windows 用来定位 DLL 的搜索路径
描述 Windows 操作系统用来定位系统上的 DLL 的搜索路径。动态链接到 MFC 的规则 DLL 的模块状态
描述动态链接到 MFC 的规则 DLL 的模块状态。扩展 DLL
解释通常实现从现有 Microsoft 基础类库类派生的可重用类的 DLL。创建纯资源 DLL
讨论只包含资源(如图标、位图、字符串和对话框等)的纯资源 DLL。MFC 应用程序中的本地化资源:附属 DLL
提供对附属 DLL 的增强支持,该功能有助于创建针对多种语言进行本地化的应用程序。导入和导出
描述如何将公共符号导入应用程序或从 DLL 导出函数。Active 技术和 DLL
使对象服务器得以在 DLL 内完全实现。DLL 中的自动化
描述“MFC DLL 向导”中的“自动化”选项提供的内容。MFC DLL 命名约定
讨论 MFC 中包含的 DLL 和库如何遵循结构化命名约定。从 Visual Basic 应用程序调用 DLL 函数
描述如何从 Visual Basic 应用程序中调用 DLL 函数。
相关章节
将 MFC 作为 DLL 的一部分使用
描述规则 DLL,它使您可以将 MFC 库作为 Windows 动态链接库的一部分来使用。MFC 的 DLL 版本
描述如何将 MFCxx.dll 和 MFCxxD.dll(其中 x 是 MFC 版本号)共享动态链接库用于 MFC 应用程序和扩展 DLL。常见编程方法
提供有关下列内容的主题链接:描述有关 Visual C++ 库的概念信息和讨论各种编码技术和方法。