序出错的地方。那通常是包含在SCX、SCT或VCX、VCT里某些行的代码。
千万不要被误导,并不是您的程序代码编写有问题,而是隐藏在标识符之外的、看起来好像是空格、回车的空白段,那里隐藏了低级链接的错误、或Unicode的错位排序(下面马上就会讲述到),用Shift+方向键将整行全选,然后按Delete键删除之,最后老老实实地将原行代码重新书写一遍即可(切记:用Shift+方向键将整行全选,然后将该整行彻底清除)。
2、Unicode。
从Windows98升级过来的VFP程序员似乎都曾有过这样的困惑:为什么Windows2000以上版本的VFP程序会如此的不稳定,以至于频繁出现“致命错误——C0000005”?
您现在上网用的计算机的操作系统是WIN2000或WindowsXP吗?如果是,不妨亲自做这样一个试验:
打开记事本程序,输入“联通”,然后保存后关闭该文本,再重新开打,看到什么了?
是的,当年WIN2000操作系统的流行时,Visual Foxpro开发组并没有彻底改正语义分析器代码的漏洞。
好的,第一大类我就阐述完了。如何避免它呢?
总的应该说很麻烦,有两种途径供您选择:1、修改VCX、SCX表国际代码页的编码,将简体中文编码改为英文编码;
2、我所推荐的方法是尽量用prg。你可能会认为这样做很麻烦,但作为程序员,您应该更加专业一些。您可以备份可视化的表单或类文件,但在程序正式发布前,最好最大限度地转化为prg程序。倘若以后需要修改程序,通过备份
的表单或类文件进行可视化编辑,然后再次转化为prg发布之。
顺便告诉您一个小窍门:
在IDE设计模式下,我们或许会突然遇到“致命错误-C0000005”袭击,因为表单是以独占的、开放式自由表缓冲的模式交互的,所以此前未经保存的信息都将被丢失,这您是知道的,通过刚才的讲述,您还知道了这或许会面临表被损坏的风险,从而进入了一个“致命错误-C0000005”潜在引发今后“致命错误-C0000005”故障的恶性循环。
小窍门就是,您千万不要条件反射地去触击那个“确定”按钮!那不过只是Visual Foxpro系统所捕获的异常罢了,它不是真“致命”的,Visual Foxpro系统仍在运转中,也就是说,它还在正常地接收着Windows操作系统不断发送来的消息。这时,请您点开Windows桌面最左下角的“开始”按钮,选择“重新启动计算机”或“关闭
计算机”,Windows在试图关闭电脑前,会先检查是否有尚在运行中的应用程序,它会发现一个叫Fox的先生尚未退场,于是便发送清场的消息给Foxpro,Visual Foxpro其实还在正常的运转中,它接收到这条消息后,会调用自身的退出机制试图退出,而自身的退出机制会发现尚有正在编辑的表单,便会发出“需要保存修改吗?”的询问消息,这时候,您选择保存,就可以了!
千万注意了!这段过程大概只有5秒钟的时间!因为为了防止死循环的情况出现,Windows会在等待几秒钟对方不应答的情况下强行终止程序,那时候,就真正退出整个Windows系统了。所以您一定要眼疾手快!
(说到异常处理,便自然地想到了Vfp9新加的异常处理Try机制,事实上倘若不是开发OLE远程服务的DLL,您就没有必要就使用它。因为VFP为您提供的On error或Error事件,其脚本解释程序代码实质上就是C++的异常处理机制,在您熟练地使用VFP错误处理
程序时,实际上就等于在使用C++的异常处理程序了。)
第二大类是第三方监控性质的软件。如:防毒软件在内存即时监控状态下、词霸软件在全屏拾取模式下等。其实防毒软件本身并不与VFP产生冲突,但有一个例外,就是内存即时监控(请注意:防毒有许多即时监控,唯有内存即时监控才会与有时候与VFP发生冲突)。
所谓内存即时监控并不是去读取内存条中的数据,谁也没这么大的本事,它的原理