询问者
升级为XP3后,应用程序错误!

问题
-
本人的宏基5583笔记本电脑,正版XP2 HOME 版,以前玩跑跑卡丁车一切正常,最近升级为XP3以后,不能运行系统提示: rundll32.exe 应用程序错误 0x00435690指令引用的“ 0x00435690 ”内存,不能为"written",要终止请单击“确定”。
确定后又提示:0x003e5680 , 0x003f5680指令与上相同的错误。
程序运行不起来,一运行就提示错误,并退出全屏模式,只在任务栏有图标,不点击图标不会再提示,且无法在程序上退出,只能用ALT+F4关闭。
关闭是又提示0x00b954e8指令引用的0x00b954e8内存不能为read.确定后提示0x016dzaa9 指令引用的 0x00000930内存不能为read.
请教各位高手是什么问题??谢谢!!!
全部回复
-
先说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也是就编程中的“光标”。存内不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用光标,继续在之后的执行中使用这块内存。真正的0地址内存区储存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如个DOS),写数据到这地址会导致立即当机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的内存不为“能read”错误,并指出被引用的内存地址为“0x00000000“。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。
我个人认为:是游戏可能不支持xp3版本,或者是系统本身对游戏的不兼容。
对不起,我暂时还无法提出解决方案!
faisfe
-
您可以从添加删除程序中把xp3补丁删除掉,就可以正常的进行游戏了.
这是微软的回复:
尊敬的微软用户,
您好!
感谢您提交的报告。我们是微软中国安全响应小组,负责微软产品安全漏洞的报告。
关于您提到的SP3降级到SP2的问题,SP3的安装程序本身提供了卸载功能。除非在安装时您禁用了SP3安装程序备份功能,否则您都可以在添加/删除程序中卸载它。
关于您提到的问题,很遗憾,它是第三方产品和Windows的兼容性问题,而不是一个安全漏洞。据网上资料,跑跑卡丁车在Windows XP SP3下和多种防病毒/间谍软件工具有冲突,建议您和跑跑卡丁车的代理商中国世纪天成的技术支持服务联系,相信您会得到一个满意的答复。您也可以访问微软中文技术论坛(http://forums.microsoft.com/china/ShowForum.aspx?ForumID=1756&SiteID=15),和其他的微软用户一起探讨感兴趣的话题。
感谢您对微软产品的支持。祝您身体健康,工作顺利!
致
礼
微软中国安全响应小组
2008年8月25日
faisfe