| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4903 人关注过本帖
标题:调用自定义函数的问题
只看楼主 加入收藏
gxbsdzf
Rank: 2
等 级:论坛游民
帖 子:28
专家分:23
注 册:2019-11-26
收藏
得分:0 
你还没编译吧,在vfp编程环境直接运行表单,确实是一切正常。你把项目编译成EXE后再运行试试看。
感觉应该不是路径问题,如果是路径问题,那首先是找不到这个文件。现在是函数运行起来了啊,只是有问题而已。

这里再说明一下:这个测试项目编译成exe文件后,运行这个文件,点击“登录”按钮,如果出错,程序会把错误信息写入当前目录下的一个文本文件,打开这个文件,可以看到很多个错误,主要是文件 'lwordarray.prg' 不存在以及无效的下标引用。但其实并没有lwordarray.prg这个文件,它就是一个数组lwordarray(1)。当没有定义一个数组就直接引用时VFP往往抛出这种错误。至于这个“无效的下标引用”的错误,虽不知道是在哪一行,但至少说明函数是跑起来了,也许是前面的错误导致下标值异常才引发这个错误。

麻烦大家帮试一下:
打开项目后,先运行“代码”页的path程序,用于配置路径;再运行“文档”页的mainfrm表单,点击“登录”,此时应该是正常的。然后编译成Exe文件,再运行这个exe文件,点击“登录”,应该是报错。点击报错窗口的“取消”,程序关闭,同时生成一个文本文件,记录所有的错误。

[此贴子已经被作者于2019-11-28 13:37编辑过]

2019-11-28 13:21
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11759
专家分:43407
注 册:2006-5-13
收藏
得分:0 
会不会是这个函数又调用其他不在指定路径的函数。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2019-11-28 19:23
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10527
专家分:42899
注 册:2014-5-20
收藏
得分:0 
先声明一下数组
2019-11-28 19:32
gxbsdzf
Rank: 2
等 级:论坛游民
帖 子:28
专家分:23
注 册:2019-11-26
收藏
得分:0 
问题是在vfp编程环境下是好好的,说明路径没问题,数组也声明了,不然没等编译,错误就应该出来了。
编译好的exe文件,也是在当前文件夹下的呀!

里面有这句,应该是声明了吧:
lNumberOfWords=(INT((lMessageLength+INT((MODULUS_BITS-CONGRUENT_BITS)/BITS_TO_A_BYTE))/INT(MODULUS_BITS/BITS_TO_A_BYTE))+1)*INT(MODULUS_BITS/BITS_TO_A_WORD)
PUBLIC lWordArray(lNumberOfWords)

原代码用的是
DIME lWordArray(lNumberOfWords )
出现问题后我改为 PUBLIC lWordArray(lNumberOfWords)
还是不行。
2019-11-28 19:49
gxbsdzf
Rank: 2
等 级:论坛游民
帖 子:28
专家分:23
注 册:2019-11-26
收藏
得分:0 
这个项目的全部功能都弄好了,就等编译后开始交付试用。现在竟然卡在这点上,真抓狂
2019-11-28 19:54
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10527
专家分:42899
注 册:2014-5-20
收藏
得分:0 
_screen.Visible = .F.
MESSAGEBOX(MD5('11aa'))
RETURN

加几句随便编译运行未见异常
图片附件: 游客没有浏览图片的权限,请 登录注册

2019-11-28 20:58
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:763
专家分:2503
注 册:2011-5-8
收藏
得分:0 
问题在 main  
将SET COMPATIBLE On 删了或改为SET COMPATIBLE Off
SET COMPATIBLE On是与早期dBase版本兼容。可能对变量名的长度有限制或函数嵌套过多?
在“选项”+“常规”中的勾选 与dBase兼容,在VFP环境中运行同样报错。

[此贴子已经被作者于2019-11-28 21:57编辑过]


dBase有人接盘了。
2019-11-28 21:33
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10527
专家分:42899
注 册:2014-5-20
收藏
得分:0 
测试了一下提供的代码,这里改试试:
PUBLIC lWordArray[lNumberOfWords]
**STORE 0 TO lWordArray && 在此用这句初始化数组会使定义的数组失效???
FOR i=1 TO alen(lWordArray) &&改为这样试试
    lWordArray[i] = 0
ENDFOR
2019-11-28 22:06
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10527
专家分:42899
注 册:2014-5-20
收藏
得分:20 
SET COMPATIBLE OFF  
STORE 0 TO lWordArray
这样才可以
2019-11-28 22:19
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10527
专家分:42899
注 册:2014-5-20
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2019-11-28 22:24
快速回复:调用自定义函数的问题
数据加载中...
 
   



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

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