由于软件与系统的兼容问题,我们有时会遇到软件无法运行、系统提示缺少某个DLL文件支持的情况。在某个版本系统下用得好好的软件,换到另一个系统为何就不能用了呢?出现这种情况后,除了换系统还有别的解决办法吗?
作为与EXE发生关联的一种文件,D LL文件可与其关联的E X E主文件处在同一个目录中,也可能不在同一目录中。许多程序共享使用的D L L文件随系统存在于Windows目录或其子目录中,为系统自带的文件,也有软件在安装时才将这些文件安装在系统目录中。但是,当一些程序作为“绿色”软件使用时,人们又往往会忽略这一点。在同样的系统中,拷贝了主程序而未拷贝DLL文件,到了另一个相同版本的系统中使用,由于该系统中默认已有所需的DLL文件,所以给人的假象便是该软件好像不需要DLL文件也能运行,但实际上在运行中它是要调用系统目录中的DLL文件的。若将该软件直接拷贝移植到了另一个不同版本的系统中,若系统中不包含其所需的DLL文件,运行时就会出现问题,显示DLL缺失的提示。
小技巧
DLL文件的作用与好处
大家都知道,软件的主程序一般为EXE类型的可执行文件,直接双击它可以启动一个软件,但对DLL文件知道的可能不如EXE多。DLL是一种“动态链接库”文件,它是一套程序的重要组成部分。在许多程序的开发中,由于需要调用相似或相同的功能,或由于功能繁多,开发时设计者会将功能相对独立或可以共享使用的部分单独设计成一个模块,于是就将这些功能模块包装成一个动态链接库DLL文件。一个程序可以调用多个DLL,而多个程序又可以分享同一个DLL,管理起来就方便多了,同时又节省了资源。
2. 跨越系统 DLL借用移植
知道了问题发生的原因,就可以用“倒推法”解决了。系统提示缺少哪个文件,就通过系统搜索功能,在原来运行完好的系统中搜索这个文件,从搜索结果中选择位于系统目录下该DLL文件版本,拷贝移植到新的系统目录中,或者直接拷贝到与主程序相同的目录中即可。
以一款剪贴板软件3 DClip.exe为例,这款软件在Windows 7之前的系统中一直运行良好,且人们一向都将其作为绿色软件直接拷贝使用。但在Windows 8之后的系统中运行,却出现了系统错误提示信息,显示“无法启动此程序,因为计算机中丢失MSV BV M 5 0.D LL。尝试重新安装该程序解决此问题”(图1)。由于下载不到该软件的安装程序或安装后问题依旧,因此只有通过寻找MSVBVM50.DLL来解决了。
此前在Windows XP中3DClip.exe运行一切正常,因此可以断定该MSV BV M 5 0.D LL文件一定存在于W indows X P系统的某个角落。这时只需找一台运行Windows XP的电脑,用搜索工具在系统盘下搜索MSVBVM50.DLL文件,从搜索结果中复制此文件到新系统中(图2),或直接拷贝到3DClip.exe所在的文件夹中运行。这时,我们发现已经能一如既往地启动该软件了(图3)。
为了防止今后在不同系统下运行程序再次遇到缺失DLL的情况,在获得了DLL文件之后,可将该文件与原程序E X E存于同一目录一并打包存放。这样,在下次使用时,就不用到处去找缺失的DLL文件了。
小提示
缺失的DLL文件不一定非要拷贝到和软件相同的目录或Windows目录下,其实拷贝到系统路径能够识别的其他位置也可以。那么,系统能够识别的路径有哪些?这需要通过系统“高级”设置窗口的“环境变量”来查看PATH变量,双击即可看到可支持的完整路径变量(图4),将DLL文件放在这些文件夹中都可以找到。此外,也可以直接在命令提示符窗口中运行不带任何参数的“PATH”命令来查看当前可支持的系统路径(图5)。
小提示
DllFiles.comFixer不但具有缺失DLL的检测和自动修复功能,还具有注册表检测修复功能。软件运行后,在“状态”页面点击“立即开始扫描”按钮,即可对注册表进行深入扫描、清理和优化,有利于提升系统的性能(图7)。
3. 借助工具 DLL自动下载
如果手头上正好没有低版本的系统,无法通过直接替换法找到相应的D L L文件,这时可以借助于专用工具来在线查找D L L文件。这里推介一款DllFiles.comFixer工具,启动该软件后,点击“安装DLL文件”选项卡,在出现的文本框中输入要查找的D LL文件名,然后点击“搜索DLL-Files.com”按钮,即可联网搜索出需要的DLL文件(图6),下载补缺即可。