首页 > 课堂 > 技术开发 > 正文

动态链接库简介

2023-06-23 14:40:26
字体:
来源:转载
供稿:网友

你是否有过这样的经历,在配置不是很好的机器上运行一些不是很完善的Windows 应用程序,系统速度越来越慢,直至弹出一个警告对话框,系统资源严重不足请关闭部分Windows 应用程序,这往往是静态链接的缘故。使用普通的函数库,在程序链接时将库中的代码拷贝到可执行文件中这叫作静态链接。假设有多个程序同时执行并且都调用了同一个动态链接库,这时内存中就会保留许多重复的代码副本。

使用动态链接库则不一样,只有程序在执行时才将库代码装入内存,对于同一个动态链接库无论有多少个应用程序同时在使用它,内存中都只有一个动态链接库的副本。如果动态链接库不再被任何程序使用,系统就将它调出内存,这就减少了应用程序对内存的要求。

动态链接库是一种程序模块,它不仅可以包含可执行代码,而且通常还包含了各种类型的预定义的数据和资源,扩大了库文件的使用范围。Windows 操作系统使用了许多动态链接库,比如我们使用Visual C++建立MFC 应用程序时,如果在AppWizard向导中选择了使用MFC 作为动态链接库,那么所有这种类型的程序至少都共用了C:/Windows/System 目录下的MFC 动态链接库文件Msvcrt.dll 和Mfc42.dll ,许多设备的驱动程序也是用动态链接库实现的,扩展名一般为.drv。动态链接库技术常常用于开发大型软件系统,一个大型系统如果只通过一个可执行文件来完成那程序就太庞大了,而且可能有许多重复的功能,这时如果将程序分解由一系列主程序和动态链接库组成,这就减少了开发难度和工作量,提高了访问的速度,更有利于对整个系统的管理。

动态链接库的另一个用途是,软件产品国际化开发人员可以将依赖于各国语言的资源分离开来各自放进专门的动态链接库中,各国不同的用户可以在安装和运行时选择适当语言版本的动态链接库,这样主程序不用改变就可以用于全球范围。这是实现软件国际化的一项技术,知道了动态链接库的这些特点,相信读者不难明白为什么动态链接库的应用那么广泛了。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表