=
from:https://blog.csdn.net/u013471277/article/details/82802285
有不少补充和修改。
=
DLL的概念
DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。
DLL文件中存放的是各类程序的函数(子过程)实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数的地址,最后进行调用。使用DLL文件的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才从DLL中取出。另外,使用DLL文件还可以减小程序的体积。
组成一个软件的文件中.dll占据相当多一部分。
通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。 例如,一个计帐程序可以按模块来销售。 可以在运行时将各个模块加载到主程序中(如果安装了相应模块)。 因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。
此外,可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。 例如,您可能具有一个工资计算程序,而税率每年都会更改。 当这些更改被隔离到 DLL 中以后,您无需重新生成或安装整个程序就可以应用更新。
优势
DLL的优点
DLL 依赖项
当某个程序或 DLL 使用其他 DLL 中的 DLL 函数时,就会创建依赖项。 因此,该程序就不再是独立的,并且如果该依赖项被损坏,该程序就可能遇到问题。 例如,如果发生下列操作之一,则该程序可能无法运行:
- 依赖 DLL 升级到新版本。
- 修复了依赖 DLL。
- 依赖 DLL 被其早期版本覆盖。
- 从计算机中删除了依赖 DLL。
这些操作通常称为 DLL 冲突。 如果没有强制实现向后兼容性,则该程序可能无法成功运行。
下表说明了为了帮助最大限度地减少依赖性问题而在 Microsoft Windows 2000 和较高版本的 Windows 操作系统中引入的更改:
- Windows 文件保护
在 Windows 文件保护中,操作系统禁止未经授权的代理更新或删除系统 DLL。 因此,当程序安装操作尝试删除或更新被定义为系统 DLL 的 DLL 时,Windows 文件保护将寻找有效的数字签名。
- 专用 DLL
通过专用 DLL 可以使程序避免遭受对共享 DLL 进行的更改。 专用 DLL 使用版本特定信息或空 .local 文件来强制要求程序所使用的 DLL 的版本。 要使用专用 DLL,请在程序根文件夹中找到 DLL。 然后,对于新程序,请向该 DLL 中添加版本特定信息。 对于旧程序,请使用空 .local 文件。 每个方法都告诉操作系统使用位于程序根文件夹中的专用 DLL。
DLL 故障排除工具
ependency Walker 工具可以递归扫描以寻找程序所使用的所有依赖 DLL。 当在 Dependency Walker 中打开程序时,Dependency Walker 会执行下列检查:
- Dependency Walker 检查是否丢失 DLL。
- Dependency Walker 检查是否存在无效的程序文件或 DLL。
- Dependency Walker 检查导入函数和导出函数是否匹配。
- Dependency Walker 检查是否存在循环依赖性错误。
- Dependency Walker 检查是否存在由于针对另一不同操作系统而无效的模块。
通过使用 Dependency Walker,您可以记录程序使用的所有 DLL。 这可能有助于避免和更正将来可能发生的 DLL 问题。 当安装 Microsoft Visual Studio 6.0 时,Dependency Walker 将位于以下目录中:
http://www.dependencywalker.com/(下载地址)
DLL Universal Problem Solver (DUPS) 工具用于审核、比较、记录和显示 DLL 信息。 下表说明了组成 DUPS 工具的实用工具:
- Dlister.exe
该实用工具枚举计算机中的所有 DLL,并且将此信息记录到一个文本文件或数据库文件中。 - Dcomp.exe
该实用工具比较在两个文本文件中列出的 DLL,并产生包含差异的第三个文本文件。 - Dtxt2DB.exe
该实用工具将通过使用 Dlister.exe 实用工具和 Dcomp.exe 实用工具创建的文本文件加载到 dllHell 数据库中。 - DlgDtxt2DB.exe
该实用工具提供 Dtxt2DB.exe 实用工具的图形用户界面 (GUI) 版本。
有关 DUPS 工具的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
247957 使用 DUPS.exe 解决 DLL 兼容性问题
DLL 帮助数据库帮助您查找由 Microsoft 软件产品安装的特定版本的 DLL。 有关 DLL 帮助数据库的更多信息,请访问下面的 Microsoft 网站:
http://support.microsoft.com/dllhelp/
(http://www.pc6.com/wenjian/dll/)
DLL错误的危害
=
=
=
相关推荐
DLL(Dynamic Link Library)是动态链接库的缩写,是一种包含可由多个程序同时使用的代码和数据的文件格式。以下是关于DLL的详细介绍: 一、定义与基本特性 定义:DLL文件是Windows操作系统中用于实现代码重用的一...
**Win32动态链接库(Dynamic-Link Library, DLL)是Windows操作系统中一个重要的组成部分,它允许多个程序共享同一块内存空间中的代码和数据,从而节省系统资源、提高程序的执行效率。在这个名为"Win32 Dynamic-Link...
动态链接库(Dynamic Link Library,简称DLL)是Windows操作系统中的一种共享库机制,它允许多个应用程序同时使用同一段代码和数据,从而节省内存资源并提高系统效率。在VC++2008这样的开发环境中,我们可以创建和...
标题中的"library libmysql_e.dll,126"指的是一个特定的动态链接库(Dynamic Link Library,DLL)文件,libmysql_e.dll,及其版本号126。在Windows操作系统中,DLL文件是程序运行时所需的共享库,包含了执行特定功能...
DLL文件是一种包含代码和数据的可执行文件,它允许程序在运行时动态地链接到所需的函数和资源。这种机制使得多个程序可以共享同一个DLL文件,从而避免了代码的重复编写和内存的重复占用。DLL文件通常包含一组函数、...
动态链接库(Dynamic Link Library,简称DLL)是Windows操作系统中一个重要的组件,它允许程序共享代码和资源,从而节省内存并提高效率。然而,DLL注入技术则是一种高级编程技巧,常用于调试、性能监控、恶意软件等...
查看DLL函数工具,纯绿色版,可以将...DLL是Dynamic Link Library的缩写,意为动态链接库。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当
VisualSvn 2.5.2 破解和安装程序 VisualSVN 2.5.2 破解 by Whikiey 先安装原版,再用破解的DLL覆盖到安装目录Bin下 无限期使用 显示注册名称为本机登录用户
DLL是Dynamic Link Library的缩写,意为动态链接库。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL...
DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中...
动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可...
DLL(Dynamic Link Library)是Windows操作系统中的一个重要组成部分,它允许多个程序共享同一块代码和数据,从而节省内存并提高执行效率。C#可以创建.NET Framework兼容的DLL,这些DLL可以被其他.NET语言或通过.NET...
DLL是Dynamic Link Library 的缩写形式,为动态链接库的意思,DLL 包含可由多个程序同时使用的代码和数据的库。DLL 有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个...
DLL(Dynamic Link Library)是Windows操作系统中的一个重要组成部分,它是一种共享库,包含了可被多个程序同时使用的函数和资源。DLL查看工具,如ha_dllexpv,对于开发者和系统管理员来说非常有用,因为它们能帮助...
DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中...
首先,我们来了解一下什么是DLL(Dynamic Link Library)。DLL是一种可执行文件,它包含了一系列可供其他程序调用的函数和资源。在Microsoft.Office.11.0.Object.Library的案例中,这些DLL包含了Office 2003应用程序...
当遇到PHP环境启动时提示无法加载动态链接库(Dynamic Link Library,DLL)的问题时,比如错误信息:"PHP Warning: PHP Startup: Unable to load dynamic library D:/php5/ext/php_mysqli.dll",表明PHP在初始化时...