你可以在OnComm事件中判断接收到的字节数(inputbuffercount),一个汉字要占两个字节,你那种方法有可能会取半个汉字,所以会乱码

解决方案 »

  1.   

    llsus(lls) :可否帮我写一下上面的代码?我急用,谢了先!
      

  2.   

    Private Sub Com1_OnComm()
     '等50毫秒
        Start = Timer
        Do While Timer < Start + 0.2
        Loop
        
        CurInput = Com1.Input
        If Len(CurInput) = 0 Then
            Exit Sub
        End If......
      

  3.   

    用文本模式接受就可以了。dim strBuf as string
    MSComm1.InputMode=comInputModeText
    MSComm1.InputLen=100
    strBuf = MSComm1.Input
    txtReceive.Text = strBuf
      

  4.   

    这两天我没有看这个帖子,对不起
    你是否知道发送端要发送多少字节?
       如果知道你在OnComm事件中判断.inputbuffercount属性,当数量等于发送的字节数就用.input属性去读取并显示
       如果不知道,你在OnComm事件中取出.input的内容放在一个数组中,不要显示,检查数组的最后一个元素是否>128(汉字是由两个>128的ASCII扩展码组成的),不大于可以直接转换成字符显示,否则等下一笔数据来了再判断