dll

我顶 字号:

什么是DLL                                          

    DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。
    DLL多数情况下是带有DLL扩展名的文件,但也可能是EXE或其他扩展名。它们向运行于Windows操作系统下的程序提供代码、数据或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。
    DLL是Dynamic Link Library的缩写,意为动态链接库。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的 DLL文件被称为共享DLL文件。DLL文件一般被存放在C:/Windows/System目录下。
   
    1、如何了解某应用程序使用哪些DLL文件
    右键单击该应用程序并选择快捷菜单中的“快速查看”命令,在随后出现的“快速查看”窗口的“引入表”一栏中你将看到其使用DLL文件的情况。

    2、如何知道DLL文件被几个程序使用
    运行Regedit,进入HKEY_LOCAL_MACHINE/Software/Microsrft/Windows/Current-
Version/SharedDlls子键查看,其右边窗口中就显示了所有DLL文件及其相关数据,其中数据右边小括号内的数字就说明了被几个程序使用,(2)表示被两个程序使用,(0)则表示无程序使用,可以将其删除。
    3、如何解决DLL文件丢失的情况
    有时在卸载文件时会提醒你删除某个DLL文件可能会影响其他应用程序的运行。所以当你卸载软件时,就有可能误删共享的DLL文件。一旦出现了丢失DLL文件的情况,如果你能确定其名称,可以在Sysbckup(系统备份文件夹)中找到该DLL文件,将其复制到System文件夹中。如果这样不行,在电脑启动时又总是出现“***dll文件丢失……”的提示框,你可以在“开始/运行”中运行Msconfig,进入系统配置实用程序对话框以后,单击选择“System.ini”标签,找出提示丢失的DLL文件,使其不被选中,这样开机时就不会出现错误提示了。

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

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

    5、DLL 的优点:

下表说明了当程序使用 DLL 时提供的一些优点: ? 使用较少的资源
当多个程序使用同一个函数库时,DLL 可以减少在磁盘和物理内存中加载的代码的重复量。这不仅可以大大影响在前台运行的程序,而且可以大大影响其他在 Windows 操作系统上运行的程序。
? 推广模块式体系结构
DLL 有助于促进模块式程序的开发。这可以帮助您开发要求提供多个语言版本的大型程序或要求具有模块式体系结构的程序。模块式程序的一个示例是具有多个可以在运行时动态加载的模块的计帐程序。
? 简化部署和安装
当 DLL 中的函数需要更新或修复时,部署和安装 DLL 不要求重新建立程序与该 DLL 的链接。此外,如果多个程序使用同一个 DLL,那么多个程序都将从该更新或修复中获益。当您使用定期更新或修复的第三方 DLL 时,此问题可能会更频繁地出现。

    6、DLL 依赖项:

当某个程序或 DLL 使用其他 DLL 中的 DLL 函数时,就会创建依赖项。因此,该程序就不再是独立的,并且如果该依赖项被损坏,该程序就可能遇到问题。例如,如果发生下列操作之一,则该程序可能无法运行: ? 依赖 DLL 升级到新版本。
? 修复了依赖 DLL。
? 依赖 DLL 被其早期版本覆盖。
? 从计算机中删除了依赖 DLL。
这些操作通常称为 DLL 冲突。如果没有强制实现向后兼容性,则该程序可能无法成功运行。

 

文章参考:(遗址迁都-整理)
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;815065

 

有关 DLL 和 .NET Framework 程序集的更多信息,请访问下面的 Microsoft 网站:
 
DLL 帮助数据库
http://support.microsoft.com/dllhelp (http://support.microsoft.com/dllhelp)

DLL 冲突 (DLL conflicts)
http://msdn.microsoft.com/library/en-us/dnsetup/html/dlldanger1.asp (http://msdn.microsoft.com/library/en-us/dnsetup/html/dlldanger1.asp)

在应用程序中实现并行组件共享 (Implementing side-by-side component sharing in applications)
http://msdn.microsoft.com/library/en-us/dnsetup/html/sidebyside.asp (http://msdn.microsoft.com/library/en-us/dnsetup/html/sidebyside.asp)

如何生成和维护用于 Windows XP 的独立应用程序和并行程序集 (How to build and service isolated applications and side-by-side assemblies for Windows XP)
http://msdn.microsoft.com/library/en-us/dnwxp/html/sidexsidewinxp.asp (http://msdn.microsoft.com/library/en-us/dnwxp/html/sidexsidewinxp.asp)

使用 .NET Framework 简化部署和解决 DLL 冲突 (Simplifying deployment and solving DLL conflicts with the .NET Framework)
http://msdn.microsoft.com/library/en-us/dndotnet/html/dplywithnet.asp (http://msdn.microsoft.com/library/en-us/dndotnet/html/dplywithnet.asp)

.NET Framework 开发人员指南:程序集
http://msdn.microsoft.com/library/en-us/cpguide/html/cpconassemblies.asp (http://msdn.microsoft.com/library/en-us/cpguide/html/cpconassemblies.asp)

创建 Win32 DL (Creating a Win32 DLL)
http://msdn.microsoft.com/library/en-us/vccore98/html/_core_overview.3a_.creating_a_win32_dll.asp (http://msdn.microsoft.com/library/en-us/vccore98/html/_core_overview.3a_.creating_a_win32_dll.asp)

运行时动态链接
http://msdn.microsoft.com/library/en-us/dllproc/base/run_time_dynamic_linking.asp (http://msdn.microsoft.com/library/en-us/dllproc/base/run_time_dynamic_linking.asp)

线程本地存储 (Thread local storage)
http://msdn.microsoft.com/library/en-us/dllproc/base/thread_local_storage.asp (http://msdn.microsoft.com/library/en-us/dllproc/base/thread_local_storage.asp)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值