精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VFP>>〖开发心得〗>>转载: 我的血泪经验 C000005 排除一例。

主题:转载: 我的血泪经验 C000005 排除一例。
发信人: ljun(闲云)
整理人: hunter__fox(2002-07-30 04:42:10), 站内信件
我的血泪经验 C000005 排除一例。

今早我发过一贴子,我知道我麻烦了很多人,我深深感谢很多人对我的帮助。
长达一天的捉虫终于有了结果,现将排错过程一一列出,供各位参考。

问题:
在使用菜单项呼叫这个表单的时候,出现 C000005 错误。
但在表单里呼叫这个表单的时候,一切正常。
接下来的菜单项里的呼叫全部正常。也就是说,一定要先由表单呼叫一次这个表单,否则不管什么时候都发引发 C000005 错误。

原本以为小问题,结果,动用人力物力都无法排除。

排错第 1 步:菜单生成器有缺陷,自己动手写一个代替它。解决了吗?没有
排错第 2 步:生成的菜单其实也是过程文件,改为用过程呼叫。解决再现了吗?是的。
*-- 重新确定问题源:在使用过程呼叫这个表单的时候,出现 C000005 错误。
排错第 3 步:重建项目,重新编译类库。解决了吗?没有。
排错第 4 步:更改表单名,更改控件名,注释所有事件,方法,过程。解决了吗?没有。
排错第 5 步:更改控件在表单的加载顺序,全部颠倒过来。解决了吗?没有。
排错第 6 步:移去数据环境。解决了吗?没有。
排错第 7 步:逐一从表单上移去控件,问题解决了吗?全部控件移除,问题解决。·¥#%#¥
排错第 8 步:新建空表单,从备份的表单上逐一复印控件,问题再出了吗?是的。
排错第 9 步:删除所有控件,仅留下最后那个复制过来的控件,问题再现了吗?是的!
重新确定问题源:类库内部出问题。
排错第 10 步:NODEFAULT 阻止所有事件与方法。问题解决了吗?没有!
重新确定问题源:不是方法或事件引发的这个错误。因为根本没有执行任何代码。
排错第 11 步:更改部份有意义的内部私用属性名称,问题解决了吗?没有!
排错第 12 步:决定要更改外部公用属性名与方法名……慢,你先杀了我吧!不可能,整个程序嵌入的事件设定与引用会全部消失,程序将崩溃。不如不排除这个错误。
排错第 13 步:苦思……为什么以前不会呢?
排错第 14 步:解开旧程序的类,逐一比较。正常。除了某些属性为了慎重,隐藏了起来。
排错第 15 步:那旧的类来代替它吗?这是不可能的。只会向上升级那有向下降级的。
排错第 16 步:无奈,顺手将隐藏的属性恢复为公共。
排错最后一步:奇迹出现,C00005 错误被处理!总耗时:16 小时。
复制备份的完整表单,编译,,,,一切正常。
将属性仍设为私有。正常。不信邪,再次设为隐藏。问题再见!!

活见鬼!!哪位兄弟能告诉我这是为什么?是 VFP 的问题还是程序的问题?
为什么类的部份属性设为隐藏并且一行代码也未进行操作,在使用过程呼叫会出 C000005 错误,在表单对象中的呼叫就不会?看来我们只有一个选择,慎用属性与方法隐藏。

唉,一天就这么过去了……好困。 



----
Foxer资料信息传送站
站点宗旨:共同进步
站点精神:Foxer共建Fox站(网站)
站点征召:请大家把好的贴子或文章粘到网站上
主页地址:http://webpage.smiling.com.cn/foxer/index.html
报名地址:http://www.smiling.com.cn/search/groupinfo.ecgi?group_id=25505
本站域名转向: vfoxer.126.com 
              foxer126.126.com 
              vfp126.126.com 


加入Foxer资料信息传送站    

[关闭][返回]