腹泻原因

首页 » 常识 » 诊断 » 电脑上的DLL文件有什么用为什么缺失之后
TUhjnbcbe - 2025/6/23 22:54:00

DLL,中文名叫动态链接库,它是什么东西呢?大体上我们可以把它理解为可执行程序的变种,这是因为绝大多数情况下,动态链接库文件里面包含的内容和可执行文件(exe)类似,都是一堆机器指令。

但它们之间也是有区别的,其中最重要的区别是——动态链接库不像可执行文件一样能够被双击运行,它的运行重要依赖别的可执行程序。由此可见,动态链接库的角色是给可执行文件打辅助的。

怎么个辅助法呢?动态链接库中通常包含的都是多个程序都能用到的代码和数据,比如Comdlg32这个动态链接库里面包含了和对话框相关的功能,每个程序都可以使用它来实现打开、保存等对话框,而不需要自己重新写这些代码。

当操作系统要运行一个可执行程序时,会先把可执行程序的内容读取到内存里,但暂时还不能运行,因为代码还不完整。在这些内容中,有一小部分描述了程序还需要哪些动态链接库辅助,于是操作系统会依次在电脑上查找这些动态链接库文件。如果找到了就把这些文件中的代码也读取到内存里,这样可以执行程序就可以正常运行了。

这里要注意的是,查找文件的动作是有讲究的,它的先后顺序依次是:可执行文件所在的目录、windows系统目录、windows目录、当前目录,以及环境变量PATH指定的目录。

如果在上述位置都找不到,系统就认为没有这个文件了,别的文件夹它是不会去看的。

这时候大家会不会冒出这样的疑惑——既然可执行程序运行时还要查找动态链接库,那为什么不把它们俩合并为一个可执行文件呢?

这种做法确实有一定的道理,但是工程上的事情每一种方案都利弊共存,用哪个方案要取决于具体的情况。如果是个很小的程序,是可以合并动态链接库的。但现在的软件往往都比较大,把一个很大的可执行文件分解为一个小文件,加上很多动态链接库文件,有很多优点。

比如一个已经安装的游戏,文件大小是20个G,在功能升级时用户只需要下载少数几个涉及升级内容的DLL即可,也许只有几十兆,这样既快又方便。而换做合并为一个文件的做法,用户在升级时就必须下载整个可执行文件,游戏厂商估计要被玩家炎上好几回。

前面讲的都是优点,那动态链接库有缺点吗?当然有,因为和可执行程序分开保存,动态链接库很可能被用户误删除,或者被病毒木马损坏,也可能跟可执行程序版本不兼容。这些问题轻则导致功能失效,重则导致程序崩溃或不能启动。

那么有没有避免方法呢?有的,首先我们下载软件时尽量去

1
查看完整版本: 电脑上的DLL文件有什么用为什么缺失之后