首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

自己写的vb串口通信的程序,在自己电脑上运行没有关问题,但是到别人电脑上就出现数组下标越界

2013-03-26 
自己写的vb串口通信的程序,在自己电脑上运行没问题,但是到别人电脑上就出现数组下标越界如题,而且我打包了

自己写的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

热点排行