dll学习(一):dll简介

什么是 DLL?

DLL 是一个包含可由多个程序同时使用的代码和数据的库。 例如,在 Windows 操作系统中,Comdlg32 DLL 执行与对话框有关的常见函数。 因此,每个程序都可以使用该 DLL 中包含的功能来实现“打开”对话框。 这有助于促进代码重用和内存的有效使用。

通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。 例如,一个计帐程序可以按模块来销售。 可以在运行时将各个模块加载到主程序中(如果安装了相应模块)。 因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。

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

下表说明了 Windows 操作系统中的一些作为 DLL 实现的文件: 

  • ActiveX 控件 (.ocx) 文件
    ActiveX 控件的一个示例是日历控件,它使你可以从日历中选择日期。
  • 控制面板 (.cpl) 文件
    .cpl 文件的一个示例是位于控制面板中的项。 每个项都是一个专用 DLL。
  • 设备驱动程序 (.drv) 文件
    设备驱动程序的一个示例是控制打印到打印机的打印机驱动程序。

动态链接是一种在运行时将应用程序链接到库的机制。这些库保留在自己的文件中,不会复制到应用程序的可执行文件中。DLL在运行应用程序时链接到应用程序,而不是在创建应用程序时链接到应用程序。DLL可能包含指向其他DLL的链接。

很多时候,DLL被放置在具有不同扩展名的文件中,例如.exe,.drv或.dll。

DLL的优点

下面给出了拥有DLL文件的一些优点。

使用更少的资源

DLL文件不会与主程序一起加载到RAM中; 除非有要求,否则他们不会占用空间。当需要DLL文件时,它将被加载并运行。例如,只要Microsoft Word的用户正在编辑文档,RAM中就不需要打印机DLL文件。如果用户决定打印文档,则Word应用程序将导致加载并运行打印机DLL文件。

促进模块化架构

DLL有助于促进开发模块化程序。它可以帮助你开发需要多语言版本的大型程序或需要模块化架构的程序。模块化程序的一个例子是具有许多模块的计费程序,这些模块可以在运行时动态加载。

帮助轻松部署和安装

当DLL中的函数需要更新或修复时,DLL的部署和安装不需要将程序与DLL重新链接。此外,如果多个程序使用相同的DLL,则所有这些程序都可以从更新或修复程序中受益。当你使用定期更新或修复的第三方DLL时,可能会更频繁地发生此问题。

如果在模块定义文件的IMPORTS部分中指定DLL链接作为编译的一部分,则应用程序和DLL可以自动链接到其他DLL。否则,你可以使用Windows LoadLibrary函数显式加载它们。

重要的DLL文件

下面提到了一些用户应该知道编程的重要dll文件 -

  • COMDLG32.DLL - 控制对话框

  • GDI32.DLL - 包含许多用于绘制图形,显示文本和管理字体的函数。

  • KERNEL32.DLL - 包含数百种用于管理内存和各种进程的函数。

  • USER32.DLL - 包含许多用户界面功能。参与程序窗口的创建及其相互交互。

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值