1、1 目录 目录 .1 中文摘要 .2 Abstract .2 一、概论 .3 1.1. 研究背景 .3 1.2. 动态链接库的定义 .3 1.3. 动态链接库与静态链接库 .3 1.3.1. 静态链接库 .3 1.3.2. 动态链接库与静态链接库的区别 .4 1.4. 动态链接库的优点 .4 1.5. 在以下这些 情况下,必须使用动态链接库: .4 1.6. Visual C+支持 的动态链接库的类型 .5 二、 非 MFC 动态链接库 .5 2.1. Non-MFC DLL 动态链接库 的创建 .5 2.1.1. 创建一个 Non-MFC Dll 工程“ MyDll” .6 2.1.2. 代
2、码分析 .8 2.2. 声明导出函数 .9 2.3. DLL 的调用方式 .9 2.4. DllMain 函数 . 11 三、 MFC 规则动态链接库的创建 . 13 3.1. 概述 . 13 3.2. MFC 规则 DLL 分为两类: . 13 3.3. MFC 规则 DLL 的创建 . 14 3.4. MFC 规则 DLL 的调用 . 18 3.5. 隐式调用 . 22 四、 MFC 扩展动态链接库的创建 . 24 4.1. 概 述 . 24 4.3. MFC 扩展 DLL 的加载 . 30 五、动态链接库的典型应用 . 31 5.4. DLL 木马 . 36 六、参考文献 . 38 七、
3、致谢 . 38 VC+环境下动态链接库的开发及应用 2 中文摘要 动态链接 库英文为 Dynamic Link Library,英文缩写为 DLL, 是程序运行时由该程序动态链接调用的函数库,是一些函数、数据和类集合成的可执行模块,程序员可以将动态链接库动态地集成到自己的程序中以使用库中的函数、数据和类。 开发和应用动态 链接库,有助于数据和资源的共享, 简化了 软件 项目的管理 。本文主要介绍动态链接库 创建 、调用方法,及其典型应用。 关键词 : 动态链接库( DLL), 非 MFC DLL, MFC 规则 DLL, MFC 扩展 DLL Abstract Dynamic Link Lib
4、rary (DLL) encapsulates the shared resource and code In exploring the application based on Windows, the use of DLL technology can greatly save the memory Using DLL developing project can simplify the project management and speed up the exploration This paper, introducing the implicit and explicit li
5、nking of DLL with instances, provides technical support to technicians in exploring and using DLL Key words: Dynamic Link Library (DLL) , Non-MFC DLL , MFC Regular DLL , MFC Extension DLL VC+环境下动态链接库的开发及应用 3 一、概论 1.1. 研究背景 自从微软推出 16 位的 Windows 操作系统起,此后每种版本的 Windows 操作系统都非常依赖于动态链接库 (DLL)中的函数和数据,实际上 W
6、indows 操作系统中几乎所有的内容都由 DLL 以一种或另外一种形式代表着,例如显示的字体和图标存储在 GDI DLL 中、显示 Windows 桌面和处理用户的输入所需要的代码被存储在一个 User DLL 中、 Windows 编程所需要的大量的 API 函数也被包含在 Kernel DLL 中。 在 Windows 操作系统中使用 DLL 有很多优点,最主要的一点是多个应用程序、甚至是不同语言编写的应用程序可以共享一个 DLL 文件,真正实现了资源 共享 ,大大缩小了应用程序的执行代码,更加有效的利用了内存;使用 DLL 的另一个优点是 DLL 文件 作为一个单独的程序模块,封装性、
7、独立性好,在软件需要升级的时候,开发人员只需要修改相应的 DLL 文件就可以了,而且,当 DLL 中的函数改变后,只要不是参数的改变 ,程序代码并不需要重新编译。这在编程时十分有用,大大提高了软件开发和维护的效率。 既然 DLL 那么重要,所以搞清楚什么是 DLL、如何在 Windows 操作系统中开发使用DLL 是程序开发人员不得不解决的一个问题。本文针对这些问题,通过一个简单的例子,全面地解析了在 Visual C+编译环境下编程实现 DLL 的过程。 1.2. 动态链接库的定义 动态链接 库英文为 Dynamic Link Library,英文缩写为 DLL, 是程序运行时由该程序动态链接调用的函数库,是一些函数、数据和类集合成的可执行模块,程序员可以将动态链接库动态地集成到自己的程序中以使用库中的函数、数据和类。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。多个 应用程序 可同时访问 内存 中单个 DLL 副本的内容。 1.3. 动态链接库与静态链接库 1.3.1. 静态链接库 静态链接库就是你使用的 .lib 文件,库中 的 代码最后需要连接到你的可执行文件中去 。