于一些硬件玩家而言,经常为电脑更换硬件是家常便饭,不过这种“三心二意”的结果往往会让电脑出现一系列问题,比如“出现XXX指令引用的Ox00000000内存,该内存不能为‘read’或‘written”’的错误讯息,然后应用程序被关闭。遇到这种内存不能读写的问题,可以通过以下办法解决。
分析问题:
这种问题通常是由于新老硬件的驱动程序的DLL文件(DynamIC Linkable Library即动态链接库文件)冲突造成的。即使用户安装了新的驱动程序,但因为DLL文件没有注册,仍然会造成这样的错误。
解决问题:
1.寻拢问题DLL文件解决方法自然是将驱动程序的DLL文件注册,首先找到有问题的DLL文件,可以在设备管理器中右击设备项目选择“属性”,在“驱动程序”选项卡中点击“驱动程序详细信息”,可以看到该驱动的DLL文件了,通常都在c:
\Windows\system32目录中(如图1)。
2.右键快捷注册如果驱动的DLL文件比较少,可以单个注册。点击“开始一运行”,输入regedit确定,进入注册表编辑器, 找到‘-HKEY_CLASS-ES_ROOT\dllfile\shell"项目,如果没有就新建一个。在其下新建名为“注册”的项,再在“注册”项下新建名为“command”的子项,并将其“默认”值修改为“regsvr32 %1”。这样在DLL文件的右键菜单中就添加了“注册”
命令(如图2),只要右击DLL文件选择注册即可。
3.批量DLL文件注册如果驱动的DLL文件比较多,可以批量注册。点击“开始一运行”,输入cmd确定,进入命令提示符窗口, 进入c:
\Windows\system32目录,例如N卡驱动的DLL文件为nvapi.dll、nvcuda.dll,首先输入“regsvr32nvapi.dll”,回车,进行注册(如图3)。然后按下F3键,将其指令改为“regsvr32 nvcuda.dll”,回车进行指定DLL文件的注册。
如果驱动的DLL文件没有什么特征,或者有可能是系统DLL文件的问题,那么输入for %1 in( %windir%\system32\*.dll) doregsvr32.exe/s%1,回车(如图4)。该指令的作用是用regsvr32重新注册system32目录中的所有DLL文件。在命令提示符窗口中,详细列出已经重新注册的文件和注册是否成功的信息。其实这些信息都不用特别关注,耐心等待操作完成即可。如果修复后还是出现问题,建议可以从病毒方面入手进一步检查。