一运行应用程序就出现“oxxxxxx在内存xxxxxx处为只读,程序运行失败”的错误,怎么办?

stonesm 2004-06-14 03:54:11
我机子上有的程序一运行就出现“oxxxxxx在内存xxxxxx处为只读,程序运行失败”的错误,怎么办?什么原因?
...全文
250 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
Q:"0x00426617"指令引用的"0x00000038"内存,该内存不能为"read"
1。有时候内存不兼容也可能出现这个问题,尤其是插两条内存时
2。是软件冲突造成的,系统要对一段内存进行保护,其他用户程序无法访问,当用户程序非法读取这些内存空间时,就会发生这样的错误。从操作系统底层的角度来说应该是:由于有用户模式的程序试图访问以内核模式运行的进程,在进程间通信的共享地址段中试图读取被保护的数据流,因此造成了访问冲突。根据我的经验这个问题最大的可能是由于防病毒软件或一些第三方的系统监视服务禁止了该程序对某些内存地址的访问操作。
引发原因都是如下所述:
NT/2000的每一个进程都在启动时分配了4GB(0xFFFFFFFF)的虚拟内存。其中的某些部份实际上是由所有进程共享的,例如核心和设备驱动程序区域。但它们都会被映射到每个进程的虚拟地址空间里。实际上没有进程分配到4GB的物理内存,而是仅当需要时才分配物理内存。因此每一个进程都有各自的4GB虚拟内存,编址范围从0x00000000到0xFFFFFFFF。其中,0x00000000-0x0000FFFF是为NULL指针分配而保留的。访问该区域内存将导致“非法访问”错误。0x00010000-0x7FFEFFFF是用户进程空间。EXE文件的映像被加载到其中(起始地址0x00400000),DLL(动态链接库)也被加载到这部份空间。如果DLL或EXE的代码被装入到该范围的某些地址,就能够被执行。访问该区域中没有代码装入的地址将导致“非法访问”错误。0x7FFF0000-0x7FFFFFFF是保留区域,对此区域的任何访问都将导致“非法访问”错误。0x80000000-0xFFFFFFFF仅供操作系统使用。用于加载设备驱动程序和其它核心级代码。从用户级应用程序(ring 3)访问此区域将导致“非法访问”错误。

建议您首先只保留一条内存试试,如果不行就尝试卸载防病毒软件然后检查是否问题依旧,这不是什么大的问题,不需要像大家说的重装系统,不能读就不读嘛,呵呵,当然你要是个追求十全十美的人,可以考虑重装系统,但是我要说的是除非你不再装其它软件,就装个系统,要不然这种错误你应该还是要碰到的,就像win98里的无效页面错误一样。


stonesm 2004-06-15
  • 打赏
  • 举报
回复
十分感谢!!!!!!!!

6,872

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧