★搜Asp.net★(www.soAsp.net),为专业技术文档网站。
包括Asp.net开发技术文档·C#开发技术文档·Access/SQL Server数据库开发技术文档·VB.NET开发技术文档。
还包括·项目实战经验总结·开发经验技巧总结·项目开发心得。
什么是DLL

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

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

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

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

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

无标题页

无标题页
网站主页 | 广告业务 | 责任声明 | 联系我们 | 关于本站
2008 soAsp.net 使用前必读 京ICP备08009904号
本站为公益性网站,提供开发技术参考文章,不代表本站观点,不保证文章正确性。