友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
八八书城 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

什么是dll文件-第章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



5、在修改DLL文件前,请先备份系统原有的DLL文件,以备修改失败恢复 
回答者:靓的就是你 … 举人 四级 6…2 12:36 
人们常说的“DLL”(Dynamic Link Library)也就是“动态链接库”是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的程序或资源。它和可执行文件(。EXE文件)非常类似,区别在于动态链接库中虽然包含了可执行代码却不能单独执行,而应由相应的应用程序直接或间接调用。 



DLL 是一个包含可由多个程序同时使用的代码和数据的库。例如,在 Windows 操作系统中,dlg32 DLL 执行与对话框有关的常见函数。因此,每个程序都可以使用该 DLL 中包含的功能来实现“打开”对话框。这有助于促进代码重用和内存的有效使用。 

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

此外,可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,您可能具有一个工资计算程序,而税率每年都会更改。当这些更改被隔离到 DLL 中以后,您无需重新生成或安装整个程序就可以应用更新。 



什么是 DLL? 
动态链接库 (DLL) 是包含函数和数据的模块的集合。程序文件(如 。exe 文件或 。dll 文件)在运行时加载这些模块(亦即所需的模块映射到调用进程的地址空间)。下面两类函数定义了 DLL: ? 导出函数:这些函数由其他模块调用。 
? 内部函数:这些函数仅从定义它们的 DLL 中调用。 
DLL 还导出数据。不过,这些数据由相应的函数使用。 
动态链接和静态链接 
动态链接包括系统在加载或运行时查找导出的 DLL 函数的代码所需的信息。 

在静态链接中,链接器将库函数的代码复制到调用 DLL 的每个模块。 

可以通过下列方式调用 DLL 中的函数: ? 加载时动态链接:调用方模块执行显式调用以导出 DLL 函数。为 DLL 创建导入库,然后将 DLL 链接到应用程序。在加载应用程序时,导入库提供加载 DLL 和查找导出的 DLL 函数所需的信息。 
? 运行时动态链接:在运行时加载 DLL 时,调用方模块使用 LoadLibrary 函数或 LoadLibraryEx 函数。调用方模块调用 GetProcAddress 函数以获取导出的 DLL 函数的地址。 
在链接时,Windows 搜索预安装的一组 DLL,例如性能库 (Kernel32。dll) 和安全库 (User32。dll)。然后,Windows 按以下顺序搜索 DLL: 1。 当前进程的可执行程序所在的目录。 
2。 当前目录。 
3。 Windows 系统目录。(GetSystemDirectory 函数获取 Windows 系统目录的路径。) 
4。 Windows 目录。(GetWindowsDirectory 函数获取 Windows 目录的路径。) 
5。 PATH 环境变量中列出的目录。 

注意:LIBPATH 环境变量不用于搜索。 

DLL 和静态库 
? DLL 可节省内存并减少交换。 通过在内存中共享 DLL 的单个副本,多个进程可以同时使用一个 DLL。相比之下,对于使用静态链接库构建的每一个应用程序,Windows 都要在内存中为其加载库代码的一个副本。 
? DLL 可节省磁盘空间。 多个应用程序可以共享磁盘上的一个 DLL 副本。相比之下,使用静态链接库构建的每一个应用程序都需要让链接到程序文件映像的库代码作为一个单独的专用副本。 
? DLL 可节省时间。 更改 DLL 中的函数时,只要函数的参数和返回值不变,就不必重新编译或重新链接使用这些函数的应用程序。但是,如果您使用静态链接的对象代码,则在更改函数后必须重新链接应用程序。 
? DLL 可以共享函数。 在 Win32 中,DLL 可以共享函数。默认情况下,数据对于每个进程来说是独立的。但是,静态库包含针对每一个进程的单独的数据副本和函数。 
DLL 入口点 
DLL 有一个特殊的入口点(DllMain 函数),它在附加和分离进程和线程时运行。此行为允许根据需要创建和销毁数据结构。文件扩展名为 。ocx、。cpl 和 。drv 的文件类型也是 DLL,尽管文件扩展名已改变。在 Windows 2。x 和 Windows 3。x 中,每个 DLL 都只有一个数据段实例,而不管有多少应用程序。在 Windows 32 中,可以将 DLL 标记为共享以导致相同的行为。但是,每个进程的默认设置是拥有 DLL 数据的专用副本。 
您可以通过创建 DLL 实现以下目的: ? 将程序划分为可按需加载的单独模块。 
? 存储特定于语言或特定于区域的资源。 
? 使您自己的应用程序能够使用核心代码库。 
? 生成进程内  对象或 ActiveX 控件 (OCX)。 
? 将 OLE 对象用作进程内 DLL。这一用法可改进 OLE 链接的性能。 
? 使用控制面板扩展或使用某些类型的驱动程序。 

沉余DLL文件,就是无用的DLL文件。 


DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。 DLL多数情况下是带有DLL扩展名的文件,但也可能是EXE或其他扩展名。它们向运行于Windows操作系统下的程序提供代码、数据或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。 
DLL可在“C:Windows”目录“C:WindowsSystem”目录和程序的安装目录中找到。如果启动程序,但一个或多个DLL文件丢失或毁坏,则会收到出错消息,如“找不到xyz。dll”。如果启动的程序带有一个过期的DLL文件或不匹配的DLL文件,则会出现“未定义的动态链接调用”消息。这时,你可在其他电脑上找到正确的DLL文件并将它拷贝到适当的目录下,程序就能正确运行。 
1、如何了解某应用程序使用哪些DLL文件 
  右键单击该应用程序并选择快捷菜单中的“快速查看”命令,在随后出现的“快速查看”窗口的“引入表”一栏中你将看到其使用DLL文件的情况。 
2、如何知道DLL文件被几个程序使用 
  运行Regedit,进入HKEY_LOCAL_MACHINESoftwareMicrosrftWindowsCurrent… 
VersionSharedDlls子键查看,其右边窗口中就显示了所有DLL文件及其相关数据,其中数据右边小括号内的数字就说明了被几个程序使用,(2)表示被两个程序使用,(0)则表示无程序使用,可以将其删除。 
3、如何解决DLL文件丢失的情况 
  有时在卸载文件时会提醒你删除某个DLL文件可能会影响其他应用程序的运行。所以当你卸载软件时,就有可能误删共享的DLL文件。一旦出现了丢失DLL文件的情况,如果你能确定其名称,可以在Sysbckup(系统备份文件夹)中找到该DLL文件,将其复制到System文件夹中。如果这样不行,在电脑启动时又总是出现“***dll文件丢失……”的提示框,你可以在“开始/运行”中运行Msconfig,进入系统配置实用程序对话框以后,单击选择“System。ini”标签,找出提示丢失的DLL文件,使其不被选中,这样开机时就不会出现错误提示了。 



解决DLL文件错误 


DLL实质上是包含了一些函数和数据的可执行模块,由微软公司提供。它可以被应用程序或其它DLL调用。在项目开发或编程中,它是一个前人劳动的经验集合:各个公司个人在项目开发或编程中都会积累下很多的经验、技巧和专业资料,利用动态链接库的技术,将这些成果经验汇集起来,使资源可以得到更广泛的应用;在个人用户的使用中,它又是包含数据及指令的模块,使各个相对独立的数据能被执行、链接调用。 

  虽然出现DLL文件错误的原因很多,但平常用家遇到的问题归结起来不外乎系统软件方面和硬件方面的问题。 

系统软件方面的解决招式 

  轻手: 
用最新版本的杀毒软件查杀病毒。有相当部分的病毒会造成系统文件的丢失或损坏,所以首先要升级病毒库彻底查杀病毒。 

  中拳: 
使用系统自带的修复或还原功堋T赪IN98、ME中,在“开始—运行”对话框中键入“sfc”并回车,启动“系统文件检
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!