Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published in(发表于) 2014/7/11 9:22:26
C#教程:DLL动态链接库的概念

C#教程:DLL动态链接库的概念

DLL的概念

DLL是动态链接库(Dynamic Linkable Library)的简称。动态链接库是作为共享函数库的可执行文件,它提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个DLL中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL副本的内容。Windows操作系统将可执行文件分为两种:程序文件(EXE)和DLL。

当一个源程序被编译成可执行文件时,程序中的数据或代码都会保存到可执行文件中,成为可执行文件的一部分。当程序运行时,不论是数据还是子程序都由可执行文件直接使用,所以代码和数据的位置对可执行文件来说是不会改变的。

当多个程序都要使用某一个子程序时,就会将这个子程序的代码和数据编译到每个应用程序中,这样一个工程编译工作量很大,程序运行时也会浪费很多时间。在这样的情况下,可以将其封装在DLL中,从而当应用程序使用时才将DLL载入内存。这样不但减小了可执行文件的容量,也加快了可执行文件的运行效率。

当编译器将源程序编译成一个可执行文件的同时,会将一个虚拟表也维护到可执行文件中,这个表包含了所调用的动态链接库。当应用程序运行时就会将需要的动态链接库中的函数的入口地址写入可执行文件的虚拟表中。每当可执行文件要调用动态链接库中的函数或资源时,就会通过虚拟表查找相应的入口地址使用需要的资源。

此外,可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,用户可能具有一个工资计算程序,而税率每年都会更改。当这些更改被隔离到DLL中以后,用户无需重新生成或安装整个程序就可以应用更新。




If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759