固定的或静态的数据不可大于 64K,怎么解决。。。。(在线)

wooin 2002-12-03 11:53:14
Public Const nTrcMaxDot As Long = 144000

Public Type typTrcDotBuf
FHRBuf(0 To nTrcMaxDot) As Byte
TOCOBuf(0 To nTrcMaxDot) As Byte
nCount As Long
End Type

编译的时候报这个错,但我必须要这么大的空间,怎么解决
...全文
211 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanz 2002-12-03
  • 打赏
  • 举报
回复
VB6中规定,用户自定义类型的大小不能超过64K,并且模块级数据的大小也同样受此限制,但可变长度字符串和数组不按此限制,可用如下方法解决:

1.将用户定义类型内的各变量,在模块中以单个变量形式定义,可保证其不受64K限制,变量间的关系可自行决定。此方法缺点是变量之间的关系不直观,有些独立。

2.利用类模块

1)在工程中添加一个类模块

2)在类模块中定义两个数组变量,同时定义两个属性,用于对两个数组变量的存取,属性的返回值为Variant

3)使用时生成此类的实例变量,然后直接对它的属性操作,使用就像用户定义类型一样
wooin 2002-12-03
  • 打赏
  • 举报
回复
to:yanz(飞燕)
能对第2个方法(利用类模块)详细说明一下吗,我对类的使用不太熟悉,不好意思,谢谢
wooin 2002-12-03
  • 打赏
  • 举报
回复
静态数组不能大于64K
那就是说下面的定义也不行了。。。

Public typTrcDotBuf_FHRBuf(0 To nTrcMaxDot) As Byte
Public typTrcDotBuf_TOCOBuf(0 To nTrcMaxDot) As Byte
Public typTrcDotBuf_nCount As Long
zyl910 2002-12-03
  • 打赏
  • 举报
回复
Public typTrcDotBuf_FHRBuf() As Byte
Public typTrcDotBuf_TOCOBuf() As Byte




ReDim typTrcDotBuf_FHRBuf(0 To nTrcMaxDot)
ReDim typTrcDotBuf_TOCOBuf(0 To nTrcMaxDot)
zyl910 2002-12-03
  • 打赏
  • 举报
回复
静态数组不能大于64K
wooin 2002-12-03
  • 打赏
  • 举报
回复
to:yanz(飞燕)
1.将用户定义类型内的各变量,在模块中以单个变量形式定义,可保证其不受64K限制,变量间的关系可自行决定。此方法缺点是变量之间的关系不直观,有些独立。

你的意思是说把:
Public Type typTrcDotBuf
FHRBuf(0 To nTrcMaxDot) As Byte
TOCOBuf(0 To nTrcMaxDot) As Byte
nCount As Long
End Type

改成变量定义
Public typTrcDotBuf_FHRBuf(0 To nTrcMaxDot) As Byte
Public typTrcDotBuf_TOCOBuf(0 To nTrcMaxDot) As Byte
Public typTrcDotBuf_nCount As Long

这样吗?
crystal_heart 2002-12-03
  • 打赏
  • 举报
回复
没看见过这么样用type的,一般都是先写count,在写数据的。

7,776

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧