我做了一个巨大的vbs程序,然后加密了,希望暴露一部分配置给用户。有一个参数是内存缓冲区的大小,希望根据用户的意愿来改一个缓冲数组的大小。我在一个不加密的模块 global 里面写了这样一句
const MAX_LINE_COUNT = 3000
然后在我的代码的某个类的声明部分这么写:
Private PointList(MAX_LINE_COUNT)
然后这里就报错 需要一个整型常数
会不会是金字塔没有先解析global,然后在解析类模块?又或者我这样写本身就有问题,谢谢。
金字塔使用的是标准的VBS语法,至于你遇到的问题,由于我们没有能重现的环境,因此暂时无法帮你解答,你可以搜索一下网上的一些现有资料呢?
请看我重新

此主题相关图片如下:111.png


此主题相关图片如下:222.png


此主题相关图片如下:333.png

做的测试代码,新建了文件global_var 里面只有一个常数定义,新建一个类 里面只有一个数组声明。
其他代码是我的其他项目,都是运行正常的。
你是对类模块的使用上理解有问题的吧?
对于常量的定义要在函数过程中使用的,你不能让他成为一个函数的变量名字的。
我做个测试例子并改正了你的代码
类模块
Public Function PointList(MyMe)
MyMe = MAX_LINE_COUNT
MsgBox MyMe
End Function
调用范例
Sub Test()
Set oo = New TestConst
oo.PointList(0)
End Sub
PointList是个数组,不是函数。
后来我找到问题了,原来声明静态数组的时候不能用常量代替整数。以前C++的习惯老影响。
我后来改成动态数组就可以了。就是
TestConst类里面改成
Public PointList()
然后class初始化的时候
redim PointList(MAX_COUNT)
就通过了。
最后还是谢谢王总。
[此贴子已经被作者于2017-2-28 16:31:17编辑过]