| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4010 人关注过本帖
标题:求助,异常代码=C0000005是什么原因!
只看楼主 加入收藏
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:510
专家分:1248
注 册:2010-1-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
求助,异常代码=C0000005是什么原因!

最近频频出现错误提示,换了一台机也一样,真无奈!

[attach]85465[/attach]



[此贴子已经被作者于2016-7-19 21:44编辑过]

2016-07-19 08:54
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
阅读一下那个vfp9err.log  看看能不能看出点神马来

DO IT YOURSELF !
2016-07-19 09:25
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:10 
http://www.
2016-07-19 10:56
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10541
专家分:42927
注 册:2014-5-20
收藏
得分:6 
如果是VFP自身引发的问题应该可以处理得好,使用了非VFP的控件引发的问题就不好处理。
2016-07-19 14:23
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:510
专家分:1248
注 册:2010-1-11
收藏
得分:0 
用了微软的SBarctrl,按楼上指引用了Rich Textbox代替了Edit,好像还偶尔出现,再试试看看,谢谢各位!

[此贴子已经被作者于2016-7-19 14:34编辑过]

2016-07-19 14:31
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:510
专家分:1248
注 册:2010-1-11
收藏
得分:0 
折腾了一天,终于发现问题的原因:
表格Grid1的AfterRowcolchang过程中触发了选项组件按钮Optiongroup1的Click过程;
Optiongroup1的Click过程又触发了Combo1.InteractiveChange。
删除Grid1的AfterRowcolchang过程中Optiongroup1的Click过程后没有出现异常,交叉调用,代码混乱惹的祸。
     
图片附件: 游客没有浏览图片的权限,请 登录注册





2016-07-19 22:30
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用星光悠蓝在2016-7-19 22:30:47的发言:

折腾了一天,终于发现问题的原因:
表格Grid1的AfterRowcolchang过程中触发了选项组件按钮Optiongroup1的Click过程;
Optiongroup1的Click过程又触发了Combo1.InteractiveChange。
删除Grid1的AfterRowcolchang过程中Optiongroup1的Click过程后没有出现异常,交叉调用,代码混乱惹的祸。
     

2016-07-20 08:43
独木星空
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:河北省曲阳县
等 级:版主
威 望:71
帖 子:805
专家分:683
注 册:2016-6-29
收藏
得分:0 
回复 3楼 mywisdom88
关于C0000005的一点想法
C0000005是Vfp的一硬伤,我写的一些小软件也时常被这个问题所困扰,在看了许多大侠关于C05的分析贴后,结合我自己的程序,发现在我的程序里,C000005总是由Edit控件引发的,我的程序里较多地用到了Edit,而且不是绑定的备注字段。避免使用Edit是避免C05错误的一个有效方法。但Edit有着Text无法替代的优势,我就用RichText做了一个类,为什么要做类呢?因为我发现:Richtext的边框颜色好像改不了,只能是默认的黑色,这与我表单上其它元素不协调,我便用一个自定义类,在类里用线条覆盖RichText的边框,间接实现了改变Richtext边框颜色。
  用Richtext代替Edit后,我的程序到现在还没有出现C05,当然不知以后会不会出现。

我想问一下:

1.我的想法可行吗?用RichText代替Edit是不是解决C05的正确方法?

2.RichText的边框颜色能改吗?怎么改呢?

3.我在某大侠的帖子里看到:C05大多是内存溢出产生的,内存大的机器比内存小的机器出现机率低。我在主程序里还加入了这样一句:
SYS(3050, 1, VAL(SYS(3050, 1, 0)) * 1.5) && 调整内存缓冲区为它的缺省值的1.5倍

请问这一句有意义吗?会不会带来一些负作用?

------解决方案--------------------
2、RichText的边框颜色好像改变不了。
3、没有特意设置过。
------解决方案--------------------
同意3楼意见,C000005 不是 vfp 特有的,任何代码只要出现非法存取,都会触发 C05 错误
绝大多数情况下,vfp 中发生这种错误都是 vfp 运行库中的代码错误导致的,通常是存取越界造成的,而这个错误不是应用程序代码本身的错误,而 vfp 已停止更新,MS 不会修复这些问题,所以只能避开它。

1. 楼主用 richtextbox 来替代 editbox 是可以的,没什么不妥。如果不需要数据绑定的话,完全没问题,就算需要绑定表字段,自己扩展一下这个控件也可以实现数据绑定。
2. richeditbox 边框色没有简单的办法来改变,只能通过子类化窗口并截获重画消息来实现,这在 vfp 中也可以实现但不容易,得不偿失。将边框样式设成 0,再在下面放一个 shape 控件就可以简单达到目的了
3. 调整 sys(3050) 的设置对 c05 错误没有帮助,这个设置仅用于调整 vfp 作为活动或者非活动进程时占用的内存总量。
这是从连接中复制过来的内容。

素数问题的解决是我学习编程永恒的动力。
2021-11-27 14:30
快速回复:求助,异常代码=C0000005是什么原因!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.114364 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved