别人电脑上运行得好好的程序,到了你的电脑上有可能就跑不起来。“找不到运行库”、“数组越界”、“缺少DLL文件”,这些都是非常常见的运行错误提示。今天就要给程序一张无敌通行证,让它在你的电脑上畅行无阻。
没有你怎么活:运行库故障
这可能是我们遇到最多的运行故障了,运行库是一种类似于中间层的程序,在使用运行库的程序与系统之间扮演传令员的角色。比如程序需要读一个文件a.txt,这时它只需告诉运行库这个读文件的想法即可,而具体怎么读则由运行库来指导系统完成。当这个传令员走丢了(运行库不存在)或病了(运行库损坏)时,就会出现缺少运行库的故障,安装相应的运行库就能解决此问题(见附表)。
附表 常见运行库对应表
运行库名 故障提示/特征 下载地址
VB运行库 缺少Msvbvm60.dll http://www.newhua.com/cfan/200515/vb6runtime.exe
Java虚拟机 错误包含“Java Runtime”字样 http://www.java.com/zh_CN/download/manual.jsp
VC运行库 缺少msvcr70.dll/msvcr71.dll http://www.newhua.com/cfan/200515/msvcr.zip
.NET Framework 初始化错误 http://www.onlinedown.net/soft/34491.htm
WSH运行库 网页显示不正常 http://www.skycn.com/soft/1113.Html
小提示
★如果是网页中的Java程序(称为Applet),除必要的Java运行库外,安全设置也是非常必要的,右击桌面上的IE图标选择“属性”,在弹出的“Internet属性”窗口中选择“安全”选项卡,点击“自定义级别”,在“安全设置”窗口中找到“脚本”,将“Java小程序脚本”和“活动脚本”都设置为“启用”,点击确定保存设置(见图1)。
★以上的下载文件中如果不包含安装程序,则直接解压后将DLL文件复制到系统目录即可。
图1
谁在妨碍我娱乐:游戏故障
小到Windows自带的《扫雷》、《纸牌》,大到占用6GB硬盘的《魔兽世界》,用电脑的很少有不玩游戏的。但很多朋友在装完游戏后却发现游戏根本运行不起来,难道是安装光盘有问题?
1.DirectX
特征:提示“找不到动态链接库D3D8.DLL”。
通行证:很多游戏都采用DirectX的图形接口,这些游戏在运行时都必须先确保系统中已经安装了对应(或更高)版本的DirectX,一般在游戏光盘中都会自带所需的DirectX安装文件,如果没有则从http://www.onlinedown.net/soft/5288.htm下载并安装。OpenGL也是如此,要运行支持最新OpenGL标准的游戏,就必须先安装对应的OpenGL(各显卡厂商的主页都提供了硬件对应版本的下载)。
火速链接:关于DirectX的原理和更详细的故障解决请参考本刊2005年第5期的《DirectX到底是谁》。
2.显卡驱动程序
特征:提示“找不到D3D设备”。
通行证:首先运行dxdiag确认一下“显示”选项卡中的“Direct3D加速”是否被禁用了,确保是“已启用”的(见图2)。如果显卡驱动程序版本较老,就有可能导致DirectX无法找到该D3D(Direct3D)设备的情况,解决方法是升级显卡驱动程序。另外值得注意的是,VIA芯片组的主板如果出现此问题,请先安装VIA 4in1补丁。
图2
3.永远无法插入的光盘
特征:不管光驱里有没有游戏光盘,都提示“请插入光盘”。
通行证:这种故障一般都是游戏程序的缺陷或者特有的版权保护措施导致的,解决的方法有以下几种:
①非默认安装路径:很多游戏都只支持安装在C盘的默认位置,如果在安装时将路径设置为了“D:\Program Files\XXXX” ,则有可能出现不断提示插入光盘的情况,解决方法是卸载游戏后使用默认路径安装。
②光驱盘符变更:如果在安装游戏后,重新分配盘符后导致光驱盘符变更,那么游戏记录在注册表或者文件中的游戏光盘位置就无法指向现在的盘符。可以在注册表中查找该游戏程序的相关分支,找到原有位置的字串并修改为现在的光驱盘符位置。也可以通过“控制面板→管理工具→计算机管理→磁盘管理”将光盘改回原来的盘符(见图3)。
图3
③双光驱:如果同时使用两台光驱,并且在安装游戏时使用的是第二台光驱,就有可能出现这种情况。因为有的游戏程序在安装时并没有记录安装时的盘符,而是在游戏运行时向系统查询第一个光盘所在盘符,所以就会出现这种情况。可以尝试将光盘放入另一个光驱中,如果还是不行,可以利用上文中的方法将两台光驱的盘符位置对换一下。
缺胳膊少腿怎么行:DLL文件错误
DLL相当于软件的手脚,要是缺胳膊少腿,软件当然跑不起来。
1.软件升级覆盖不完全
特征:DLL文件版本不正确。
通行证:在覆盖安装软件的新版本时,如果老版本安装目录中的某些DLL文件被锁定(比如运行着QQ就覆盖安装新版本QQ),安装程序就会提示该DLL文件写入失败,并给出“重试”和“忽略”等选项,如果选择“忽略”,则安装程序就会跳过这个DLL文件而继续下一个文件的安装,这时就有可能导致这个问题。就好比一台DVD影碟机如果使用原来的VCD光头,也是无法播放DVD影碟一样。解决方法是重新启动,确保该程序没有运行以防止其下的DLL文件被锁定,然后再重新安装该程序。
QQ病毒
腾讯QQ空间代码专题
PPT教程专题
ADSL应用面面俱到
Fireworks教程专题
计算机和网络技术基础知识
校园网专题
网吧技术专题
2.错误DLL抢先一步
特征:DLL载入失败,在多个关键目录中都存在该DLL文件。
通行证:程序要载入DLL文件时,如果在程序编写时没有指定DLL文件的绝对位置,那么就会根据给出的DLL文件名按以下顺序在各目录中搜索。
①应用程序目录
②当前工作目录
③系统目录
④路径变量
当这些目录中都存在所需的这个DLL文件时,就会优先载入排名靠前的目录中的那个文件,如果在正确的DLL文件位置之前有同名的其他DLL文件抢了先,那么就有可能导致此故障。解决的方法是将正确的DLL文件复制到应用程序目录中。
谁骗了我的程序:初始化错误
程序在运行后大多需要进行一个初始化过程,在此过程中,程序读取记录在注册表或者配置文件中的数据,并据此完成一些预定的操作(比如运行QQ后,弹出的登录对话框中的号码框中的内容就是读取了记录在QQ安装目录中的登录历史文件)。如果这些信息出现错误,程序读取后就有可能出现错误的操作,或者超出程序的处理范围而异常退出。
1.上/下标越界
特征:运行时突然弹出“上/下标越界”的错误提示。
通行证:这种情况经常出现在程序因系统错误而被迫关闭后,由于程序写入的数据不完整或错误,而导致下次启动该程序时发生错误。解决的方法有两种:
①清空初始化数据:系统提供了INI文件函数来帮助程序读写INI文件中的变量值数据,根据规则,如果程序读INI文件失败,那么该读取函数就会返回给程序该变量值的默认数据,所以一般即使清空INI文件,程序运行一次后就能恢复新安装时的状态。这样做会有一点副作用,就是程序记录在该INI文件中的其他设置也有可能一起丢失。
②使用程序自带的初始化参数:有些程序的初始化数据库并不保存在安装目录的INI文件中,而是在注册表或是其他地方,要找出这些位置相当困难,但是很多这类程序都会自带初始化的运行参数。比如MailWasher有时就会出现启动时出错退出的情况,错误提示为“List index out of bounds”(列表索引越界),这时可以通过运行“"C:\Program Files\MailWasher Pro\MailWasher.exe" -restore”(不含外侧中文引号,软件安装路径请根据实际情况进行修改)来恢复初始化文件,每个程序的初始化参数都不同,可在该软件的帮助文件或者技术支持论坛的故障解决(英文论坛则一般称为“Trouble Shooting”)版块中查找。
2.环境变量丢失
特征:原来一些在运行中可以直接输入文件名运行的程序(如在“运行”中输入“calc.exe”回车就能打开“计算器”)都无法直接运行了,必须键入程序的完整目录。
QQ病毒
腾讯QQ空间代码专题
PPT教程专题
ADSL应用面面俱到
Fireworks教程专题
计算机和网络技术基础知识
校园网专题
网吧技术专题
通行证:环境变量中保存了很多重要的路径位置,如果环境变量中的数据被破坏,就有可能导致此问题。解决方法是右击“我的电脑”,选择“属性”,在“系统属性”窗口中选择“高级”选项卡,点击“环境变量”按钮,将弹出窗口下方“系统变量”列表中的“Path”值设为系统目录所在位置(如“C:\windows\system32”和“C:\windows”),中间用分号“;”隔开(见图4)。另外,如果安装了双系统(比如Windows 98和Windows XP),那么在Windows 98中安装的软件在Windows XP下就有可能无法运行(绿色软件除外),解决的方法是将Windows 98的系统目录位置添加进Windows XP的Path环境变量中(此法只适用于部分软件,有些软件在安装时会根据当前系统的版本来选择安装对应的执行文件版本,比如“千千静听”的安装文件中就有TTPlayer_A和TTPlayer_W两个版本,这类软件不能跨平台使用)。
图4
干扰运行的幕后黑手:防火墙
安全防护软件的保护功能有时会将正常的程序操作拒之门外,导致程序运行失败。
1.WinPatrol阻止自启动
特征:运行程序后,WinPatrol弹出警告框提示是否允许其加入自启动项,选择“否”后程序异常退出。
通行证:这类程序在加入自启动时没有做好错误处理,在出现自启动写入失败后,程序就异常退出了,可以首先在弹出提示时允许其加入自启动项,然后在这个程序的相关设置选项中手动去除开机自启动的勾选。
2.内存溢出保护
特征:打开某些程序时出现防火墙警告,程序错误退出。
通行证:Windows XP SP2自带的“数据执行保护”功能、McAfee VirusScan 8.0i的“溢出防护”功能都有可能与一些程序产生兼容性问题,解决的方法是暂时禁用这些功能或者将有兼容性问题的程序加入相关功能的排除列表中。除了病毒防火墙之外,网络防火墙也有可能导致此问题,比如禁用QQ的网络连接就有可能使QQ进入假死崩溃状态。
火速链接:关于“数据执行保护”的使用请参考本刊2005年第7期的《Windows内置的病毒防护—DEP》。
3.依赖的服务被禁用
特征:在使用一些系统优化软件对系统中的服务进行优化后,程序无法运行。
通行证:很多软件在安装时都会在系统服务中加入自己的服务,比如McAfee VirusScan就会加入“McAfee Framework”服务,如果在优化时不小心将这类服务停止或禁用了,那么依赖此服务才能正常工作的程序势必会受到影响,乃至无法运行。
(出处:http://www.sheup.com)