vb串口通信用于接收数据的数组无法重新定义

PrivateSubMSComm1_OnComm()Dima%,k%,i%Dimbuf()AsByteSelectCaseMSComm1.CommEventCasecom... Private Sub MSComm1_OnComm()
Dim a%, k%, i%
Dim buf() As Byte
Select Case MSComm1.CommEvent
Case comEvReceive
k = MSComm1.InBufferCount
Print "k="; k
' ReDim buf(1 to k) As Byte
buf = MSComm1.Input
Print "UBound(buf)="; UBound(buf)
Print "lBound(buf)="; LBound(buf)
部分程序如图所示 无论redim部分如何更改 打印出来的 LBound(buf)始终等于0,UBound(buf)等于接收到的字节数减一。求解
展开
 我来答
zdingyun
2013-08-24 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48180
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部
串口接收缓冲区到达的是由Byte字节流组成的Variant。先到达的字节下标自然是0,最后到达的字节下标自然是到达字节长度减1。这都是MsComm控件内规定的。LZ就照着用就是了。
azjcdy
2013-08-24 · TA获得超过496个赞
知道小有建树答主
回答量:602
采纳率:0%
帮助的人:342万
展开全部
ReDim buf(1 to k) 这是什么语法???

数组0起始,有什么问题吗???
追问
想让buf数组的下标从一开始,我使用option base 1也不行。从0开始没问题,只是好奇为什么在这个地方不能从1开始,其他的数组测试却可以,莫非真是MsComm控件内规定的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-24
展开全部
K 取值有 数据决定

最小可能取值多少? 莫非为 0?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式