`
fantaxy025025
  • 浏览: 1328998 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

什么是DLL(Dynamic Link Library)

 
阅读更多

=

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 中以后,您无需重新生成或安装整个程序就可以应用更新。
下面说明了 Windows 操作系统中的一些作为 DLL 实现的文件: ActiveX 控件 (.ocx) 文件ActiveX 控件的一个示例是日历控件,它使您可以从日历中选择日期。 控制面板 (.cpl) 文件.cpl 文件的一个示例是位于控制面板中的项。每个项都是一个专用 DLL。 设备驱动程序 (.drv) 文件设备驱动程序的一个示例是控制打印到打印机的打印机驱动程序

DLL的优点

当程序使用 DLL 时,具有以下的优点: 使用较少的资源,当多个程序使用同一个函数库时,DLL 可以减少在磁盘和物理内存中加载的代码的重复量。这不仅可以大大影响在前台运行的程序,而且可以大大影响其他在 Windows 操作系统上运行的程序。 推广模块式体系结构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 故障排除工具

  • Dependency Walker

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

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 帮助数据库

DLL 帮助数据库帮助您查找由 Microsoft 软件产品安装的特定版本的 DLL。 有关 DLL 帮助数据库的更多信息,请访问下面的 Microsoft 网站:

http://support.microsoft.com/dllhelp/

 

http://www.pc6.com/wenjian/dll/

 

 

DLL错误的危害

 
 系统文件auditpolicygpinterop.dll出错,是由于木马病毒、或不小心被感染所致。而该文件又是系统/程序正常运行的前提条件,所以一旦不幸被感染,通常会伴随下几种情况:
1、桌面图标无法删除(重启同样不能正常删除)
2、网络游戏打不开
3、电脑无故蓝屏
4、电脑没声音
5、桌面无法显示
6、主页被修改为网址导航

 

DLL修复方法


 
auditpolicygpinterop.dll出错,很多是因为中了流氓软件的招,如果不太了解系统,不知道应该把auditpolicygpinterop.dll放在哪,那么建议使用修复工具对系统进行最全面的扫描和修复。
首先,建议使用金山毒霸。
然后,点击主界面的快速扫描,进行全面的系统扫描。
最后,按提示重新启动电脑,auditpolicygpinterop.dll下载修复完毕。
或者360安全卫士,点击系统修复然后查杀木马。

=

=

=

 

分享到:
评论

相关推荐

    DLL(Dynamic Link Library)是动态链接库的缩写.docx

    DLL(Dynamic Link Library)是动态链接库的缩写,是一种包含可由多个程序同时使用的代码和数据的文件格式。以下是关于DLL的详细介绍: 一、定义与基本特性 定义:DLL文件是Windows操作系统中用于实现代码重用的一...

    Win32 Dynamic-Link Library Demo

    **Win32动态链接库(Dynamic-Link Library, DLL)是Windows操作系统中一个重要的组成部分,它允许多个程序共享同一块内存空间中的代码和数据,从而节省系统资源、提高程序的执行效率。在这个名为"Win32 Dynamic-Link...

    动态链接库dynamic link library

    动态链接库(Dynamic Link Library,简称DLL)是Windows操作系统中的一种共享库机制,它允许多个应用程序同时使用同一段代码和数据,从而节省内存资源并提高系统效率。在VC++2008这样的开发环境中,我们可以创建和...

    library libmysql_e.dll,126

    标题中的"library libmysql_e.dll,126"指的是一个特定的动态链接库(Dynamic Link Library,DLL)文件,libmysql_e.dll,及其版本号126。在Windows操作系统中,DLL文件是程序运行时所需的共享库,包含了执行特定功能...

    Dynamic Link Library

    DLL文件是一种包含代码和数据的可执行文件,它允许程序在运行时动态地链接到所需的函数和资源。这种机制使得多个程序可以共享同一个DLL文件,从而避免了代码的重复编写和内存的重复占用。DLL文件通常包含一组函数、...

    Vruch Dynamic Link Library Inject-开源

    动态链接库(Dynamic Link Library,简称DLL)是Windows操作系统中一个重要的组件,它允许程序共享代码和资源,从而节省内存并提高效率。然而,DLL注入技术则是一种高级编程技巧,常用于调试、性能监控、恶意软件等...

    DLL函数查看器viewdllv3.5绿色中文免费版

    查看DLL函数工具,纯绿色版,可以将...DLL是Dynamic Link Library的缩写,意为动态链接库。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当

    VisualSVN 2.5.2 完美破解版

    VisualSvn 2.5.2 破解和安装程序 VisualSVN 2.5.2 破解 by Whikiey 先安装原版,再用破解的DLL覆盖到安装目录Bin下 无限期使用 显示注册名称为本机登录用户

    dll文件怎么打开

    DLL是Dynamic Link Library的缩写,意为动态链接库。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL...

    msvcp120.dll

    DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中...

    DLL函数查看器3.7

    动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可...

    pb9.0调用c#dll

    DLL(Dynamic Link Library)是Windows操作系统中的一个重要组成部分,它允许多个程序共享同一块代码和数据,从而节省内存并提高执行效率。C#可以创建.NET Framework兼容的DLL,这些DLL可以被其他.NET语言或通过.NET...

    Dll文件智能修复

    DLL是Dynamic Link Library 的缩写形式,为动态链接库的意思,DLL 包含可由多个程序同时使用的代码和数据的库。DLL 有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个...

    DLL 查看工具 ha_dllexpv

    DLL(Dynamic Link Library)是Windows操作系统中的一个重要组成部分,它是一种共享库,包含了可被多个程序同时使用的函数和资源。DLL查看工具,如ha_dllexpv,对于开发者和系统管理员来说非常有用,因为它们能帮助...

    msvcp110.dll

    DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中...

    Microsoft.Office.11.0.Object.Library

    首先,我们来了解一下什么是DLL(Dynamic Link Library)。DLL是一种可执行文件,它包含了一系列可供其他程序调用的函数和资源。在Microsoft.Office.11.0.Object.Library的案例中,这些DLL包含了Office 2003应用程序...

    PHP Warning: PHP Startup: Unable to load dynamic library D:/php5/ext/php_mysqli.dll

    当遇到PHP环境启动时提示无法加载动态链接库(Dynamic Link Library,DLL)的问题时,比如错误信息:"PHP Warning: PHP Startup: Unable to load dynamic library D:/php5/ext/php_mysqli.dll",表明PHP在初始化时...

Global site tag (gtag.js) - Google Analytics