每日扫盲(二):xxx.dll文件的作用
阅读原文时间:2023年07月08日阅读:1

DLL,dynamic-link library

动态链接库。我们看他的说明,是应用程序扩展。
DLL内是一些程序的功能。由于使用静态链接库(static LIBrary,LIB)会使主程序变得臃肿,并且难以改进,所以乎产生了DLL,如果发现哪一个功能有问题,直接修改对应的DLL就行了,当然也不能有太多DLL,否则就很零碎。
程序怎么调用DLL呢?我们前面说到了LIB,首先我们说怎么调用LIB,调用LIB是用#pragma语句,把LIB的整个内容导入程序,这样程序就可以脱离LIB而工作,但是主程序会很臃肿。我们在生成DLL的时候,一般也会生成一个LIB,这个LIB里面列举了在DLL里面所有东西的声明,注意是声明,不是定义。当程序要去是用这个函数,他从LIB里面找到有这个声明,然后他就在整个文件夹去找这个函数,当然就能在DLL里面找到。

举例:在 Windows 操作系统中,Comdlg32 DLL 执行与对话框有关的常见函数。因此,每个程序都可以使用该 DLL 中包含的功能来实现“打开”对话框。这有助于促进代码重用和内存的有效使用。comdlg32.dll是Windows应用程序公用对话框模块,用于例如打开文件对话框。comdlg32.dll在遇到木马或病毒袭击时可能产生丢失的问题,导致相关应用程序无法正常加载。

优点:

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

2、此外,可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,您可能具有一个工资计算程序,而税率每年都会更改。当这些更改被隔离到 DLL 中以后,您无需重新生成或安装整个程序就可以应用更新。动态链接库可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。又例如,您有一个大型网络游戏,如果把整个数百MB甚至数GB的游戏的代码都放在一个应用程序里,日后的修改工作将会十分费时,而如果把不同功能的代码分别放在数个动态链接库(DLL)中,您无需重新生成或安装整个程序就可以应用更新。

如果我们想要打开查看dll文件,需要先安装Reflector软件,该软件可以打开和查看dll文件,

具体的.dll文件是通过c/c++编写的