您好,欢迎来到佳博论文网!

动态链接库进阶

字数:12484,页数:31 论文编号:TX128

简介

本文是根据“MSDN”中的相关资料整理,其目的在于介绍动态连接库(Dynamic Link Library―DLL)的基本概念和为Microsoft Windows应用程序编DLL的机制。本论题仅限于使用Visual C++6.0编的32位Windows应用程序。

基本概念

静态连接

象C,Pascal和FORTRAN这样的高级编程语言,一个程序的源代码要经过编译、与不同的库连接,然后生成可执行文件。这些库是包含预编译函数的目标文件,而这些预编译函数能用于完成一般的任务,如计算一个数据的平方根或分配内存。当这些库函数被连接到一个应用程序时,它们就变成应用程序可执行文件的一个固定部分。所有对于库函数的调用都在连接时解析所以称为静态连接。

动态连接

动态连接提供了一种在运行时将应用程序连接到库的机制。库驻留在它们自己的可执行文件中,并不象静态连接那样将代码复制到应用程序的可执行文件中。这些库被称为动态连接库(DLL),以强调它们是在应用程序装载和执行时连接到应用程序,而不是在连接时连接到应用程序的。当应用程序使用一个DLL时,操作系统将该DLL装载到内存,解析DLL中函数的引用,使它们能被应用程序调用,然后在动态连接库不再需要时,操作系统将其从内存中卸载。这种动态连接机制可由应用程序显式的执行或由操作系统隐式的执行。

目 录

目 录 I

1简介 1

2基本概念 1

2.1静态连接 1

2.2动态连接 1

2.3静态连接库和Windows DLL的区别 1

2.4Window应用程序与DLL的区别 2

2.4.1定义 2

2.4.2应用程序和DLL的不同 3

3动态连接库的优点 4

4动态连接库的不足 4

5动态连接库的实现 5

5.1实现一个32位的DLL 5

5.2建立静态连接库 6

5.3建立动态连接库 9

5.3.1隐式动态连接 9

5.3.2显式动态连接 18

5.3.3DLL入口点 20

6应用程序共享DLL数据 25

6.1使用共享数据段 25

6.2使用内存映像文件 27

7DLL基址冲突 29

8结论 30

9参考资料 30

动态链接库进阶......