以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp)
-- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5)
---- 怎么样定义一个常数? (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=148215)
|
-- 作者:fwoods
-- 发布时间:2017/2/27 11:20:09
-- 怎么样定义一个常数?
我做了一个巨大的vbs程序,然后加密了,希望暴露一部分配置给用户。有一个参数是内存缓冲区的大小,希望根据用户的意愿来改一个缓冲数组的大小。我在一个不加密的模块 global 里面写了这样一句 const MAX_LINE_COUNT = 3000
然后在我的代码的某个类的声明部分这么写: Private PointList(MAX_LINE_COUNT)
然后这里就报错 需要一个整型常数
会不会是金字塔没有先解析global,然后在解析类模块?又或者我这样写本身就有问题,谢谢。
|
-- 作者:王锋
-- 发布时间:2017/2/27 19:59:00
--
金字塔使用的是标准的VBS语法,至于你遇到的问题,由于我们没有能重现的环境,因此暂时无法帮你解答,你可以搜索一下网上的一些现有资料呢?
|
-- 作者:fwoods
-- 发布时间:2017/2/27 22:25:45
--
请看我重新 此主题相关图片如下:111.png
此主题相关图片如下:222.png
此主题相关图片如下:333.png
做的测试代码,新建了文件global_var 里面只有一个常数定义,新建一个类 里面只有一个数组声明。其他代码是我的其他项目,都是运行正常的。
|
-- 作者:王锋
-- 发布时间:2017/2/28 15:45:28
--
你是对类模块的使用上理解有问题的吧?
对于常量的定义要在函数过程中使用的,你不能让他成为一个函数的变量名字的。
我做个测试例子并改正了你的代码
类模块
Public Function PointList(MyMe) MyMe = MAX_LINE_COUNT MsgBox MyMe End Function
调用范例
Sub Test() Set oo = New TestConst oo.PointList(0) End Sub
|
-- 作者:fwoods
-- 发布时间:2017/2/28 16:30:33
--
PointList是个数组,不是函数。
后来我找到问题了,原来声明静态数组的时候不能用常量代替整数。以前C++的习惯老影响。 我后来改成动态数组就可以了。就是 TestConst类里面改成 Public PointList()
然后class初始化的时候 redim PointList(MAX_COUNT) 就通过了。
最后还是谢谢王总。
[此贴子已经被作者于2017-2-28 16:31:17编辑过]
|