什么是dll文件-第2节
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
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”并回车,启动“系统文件检查器”进行常规检查。若查出有错误,按照提示从系统盘中提取相关文件即可;在WindowsXP中,Windows文件保护功能可以保护一些系统文件,例如.sys、.dll、.ocx、.ttf、.fon和.exe文件。Windows文件保护在后台运行,可保护Windows安装程序安装的所有文件,而这些文件就保存在windowsxp的安装目录下的\system32\dllcache\下面。windows文件保护需要拷贝或还原文件时,把你的xp安装盘放入或者指定你在硬盘上备份的路径即可。如果是在整理完注册表后出现,则需要恢复注册表。
重刀:
自己动手,丰衣足食。有少部分DLL文件出错是要靠手动解决或升级系统文件解决的。
例1:整理系统后,运行realplayer,报告说找不到所需的DLL文件Pncrt.dll,无法启动。
解决办法:上网下载新版本realplayer并升级。重新打开realplayer,仍然弹出对话框,说找不到所需的DLL文件Pncrt.dll无法启动。奇怪了,是不是这个DLL文件是系统文件?运行SFC命令,报告无系统文件损坏或丢失,那么肯定这个文件是软件自带的了。于是上网查找资料,说要将注册表中的相关键值删除,重新安装,按此操作进行,也无法解决问题。于是查找Pncrt.dll文件,发现C:\WINDOWS\VCM下有此文件,于是将其复制到realplayer的关联文件夹C:\ProgramFiles\monFiles\Real\mon中,运行realplayer,仍报告出错。查看该文件的属性,发现有“版本”这一项,版本的值为6。0。0。0。于是想到可能是该文件存在,但版本的关联不对,导致出错,于是在存在Pncrt.dll的情况下重新安装新版本的realplayer,运行一切正常,问题解决。
例2:WIN98中设置显示属性时出现RUNDLL32故障。
解决办法:在“开始—运行”中,输入msconfig,然后在System.ini这一页,打开boot文件夹,按“新增”,新增一行叙述:
drivers=mmsystem.dll
设定好后,储存你的设定,重新开机即可。
例3:在WIN98第二版中使用IBM语音识别系统4。0版后,再使用IE出现“KERNEL32。dll和OLEAUT32。DLL还有MFC42。DLL发现不明问题,无法使用”。
解决办法:到c:\windows\system中找到这三个文件并把它们复制下来,复制到IBM语音识别系统的x:\ViaVoice中的bin文件夹;这样我们就可以恢复IE、OE、记事本这些软件所需的DLL文件了。
硬件方面的解决招式
轻脚:
检查是否有超频。不仅是CPU,包括PCI、显卡、内存的频率都应该检查,特别是在BIOS中的设置;在正常频率和电压下使用有利于硬件设备的稳定性。
中腿:
检查硬件的驱动版本是否相称,以及硬件间是否有冲突,并安装相应的补丁;比如创新SBLive与CoppermineCPU存在兼容性问题,会引起DLL文件出错甚至蓝屏。
重踢:
将机箱打开,清洁插件并重新拔插配件。这样做的好处是解决一些由于电气性不稳定而引起的古怪的问题。
必杀技:
1、覆盖安装或还原系统;
2、格式化系统盘重新安装系统。
关于系统文件(dll)丢失、错误的解决方法
◆症状1:
机器正常。使用Win98,一安装就弹出窗口提示:“未处理的异常情况”错误代码:0x80070725,说明:RPC占位程序的版本不兼容。安装程序将立即结束。”杀过毒,注册表清理。怎么解决?
◆说明:
RPC(远程调用程序),用于通过网络将应用程序函数调用转发到远程系统。最典型的用途就是远程管理。一旦出现系统警告“RPC占位程序不兼容”时,首先可能的就是系统中有关的网络组件程序发生问题。
发生这个问题大多在Win98/NT操作系统上。因为在Win2000/XP操作系统中,都使用了IPV6支持PRC技术,普遍支持目前Windows程序,所以一般在2000后的系统中很少有这个问题出现。
98个人用户频繁出现这问题的常见原因:
1。用户安装新程序里的网络功茉赪in98下不兼容。比如金山毒霸2002/2003,里面有新的网络防火墙功能,而这个功能实现的前提条件是系统必须要有更好的系统网络组件。一旦系统中的有关文件较老,而安装程序却未提供有关更新时,就会出现这个问题。
2。这个情况更多发生网络游戏安装中。为了加快游戏的速度,许多网络游戏设计时大量采用了32位以上的RPC支持功能,而在许多98用户中却并有这样的系统文件,这样就会经常在安装、运行的时候出现该问题。
◆建议:
1。打补丁(download。microsoft/downl。。。us/mcrepair。exe)。
2。网络游戏安装中出现该问题也可将DirectX版本升级到8。0以上。如果升级DirectX8后仍出现这个问题,原因还来自于系统中的网络配置。打开网络邻居,加装有关的IPX、TCP/IP协议,可以解决问题。
◆症状2:
在上网过程中,IE突然关闭,再次打开出现错误显示wsock32。dll 动态链接库错误,必须重启电脑,IE才能正常,请问原因和解决办法。
◆建议:
如果就是偶尔一次,重启解决问题就可以了。
如果经常出现wsock32。dll动态链接库错误,就要需要查毒,可能中毒了(如下说明)
Hybris蠕虫病毒,该病毒通过电子邮件的附件进行传播,一旦收件人打开附件,就会被感染。它在WindowsSystem目录下产生一个wsock32。dll的副本,副本的主文件名是随机产生的8个字母,没有文件扩展名。还会修改Windows目录下的winint。ini文件,使下次Windows开机时原wsock32。dll文件被覆盖。
如果执行了Hybris病毒,病毒将修改Windows的系统文件wsock32。dll,并且将附有该病毒的电子邮件发送出去。无论使用哪一种电子邮件软件,都可能感染该病毒。
◆症状3:
运行“系统信息”提示找不到mfc42u。dll。经查确认无毒。
◆建议:
下载该文件:microsoft
◆症状4:
IE6。0地址栏里ctrl+enter的自动填写功能出现*,而不是*。。
◆说明:
IE6的browselc。dll文件中字符串的BUG。
browselc。dll位于:
Win9x:WindowsSystem
Win2000:WINNTSystem32
WinXP:WindowsSystem32
◆建议:
一、下载browselc。dll:download。pchome/system/patch/9524。html
二、手动修改:找到browselc。dll文件,复制原文件,然后用eXeScope(或其他能修改exe文件的软件)打开复制的文件(不能直接对原文件进行修改),修改处位于resource》string,把809字符串中的co 修改成,保存退出。
替换:修改完的browselc。dll文件需要在DOS下(如果装了双系统可在另一个系统中)替换原文件。(因为这个文件是受到系统保护的,并且当前正被系统使用。替换时请注意备份原文件。)
◆症状5:
IE中无法在新窗口中打开衔接。
◆建议:
1。开始→运行,输入regsvr32 actxprxy。dll,点击确定,接着会出现一个信息对话框“DllRegisterServer in actxprxy。dll succeeded”,该对话框中点确定;
2。开始→运行,输入regsvr32 shdocvw。dll,点击确定,接着会出现一个信息对话框“DllRegisterServer in shdocvw。dll succeeded”,该对话框中点确定;
3。重新启动电脑。
◆症状6:
一开机自动运行Rundll32。exe程序,进入msconfig把它从启动栏选项去掉,下次开机还是照样自动运行。
◆说明:
rundll的功能是以命令列的方式呼叫Windows的动态链结库。
Rundll32。exe与Rundll。exe的区别就在于前者是呼叫32位的链结库,后者是用于16位的链结库。rundll32。exe是专门用来调用dll文件的程序。
如果用的是Win98,rundll32。exe一般存在于Windows目录下;
如果用的WinXP,rundll32。exe一般存在于WindowsSystem32目录下。
若是在其它目录,就可能是一个木马程序,它会伪装成rundll32。exe。
◆建议:
一般由3721引起,卸载3721可以解决问题。
(在启动项中表现为