自己写的vb串口通信的程序,在自己电脑上运行没问题,但是到别人电脑上就出现数组下标越界
如题,而且我打包了所有的dll动态连接库过去也不行,我的电脑上没一点问题,我试了好几台都没事,但是在那个人那边的电脑上就出现数组下边越界,在串口发送的函数里我用的发送缓冲区是sendbuf(5),而且也是用到了sendbuf(5),也没往后面用呀,求高手解答。。太奇怪了
[解决办法]
调试代码,很有可能是数据类型使用不当导致
[解决办法]
ReDim recbuf(0 To inputlen) 这种定义方法是定义多维数组,但我看你只是作为一维使用,那你改成 ReDim recbuf( inputlen) 试试行不行?
[解决办法]
别人是什么系统什么环境啊?? 会不会触发这事件那里有问题啊? 因为受到EOF也是会触发这事件的
[解决办法]
出现同样问题,来学习
[解决办法]
与机器的速度有关。
速度越快的机器,代码运行到 ReDim 时,它收到的字节数越少。当你后续代码超过它 Redim 的空间,它就越界了。
加一点延时试试。或者循环到它接收到的字节数大于你可处理的值。
Case comEvReceive
inputlen = MSComm.InBufferCount
Do Until inputlen >= 6
Doevents
inputlen = MSComm.InBufferCount
Loop
ReDim recbuf(0 To inputlen - 1)
recbuf = MSComm.Input
Case comFrame
x = MsgBox("帧错误!", 16)
Exit Sub
Case comEventOverrun
x = MsgBox("数据丢失", 16)
Exit Sub