我有一个问题问大家我现在的程序向端口发送数据,如发送一个两字节的数据到端口,(1234H),则成功
而发送(8012H),则端口缓冲区只能显示(0012H),请问为什么,有没有更好的方法,
还是我的方法不对.
cc=text1.text'(1234)
aa=mid(cc,1,2)
bb=mid(cc,3,2)aaa=val("&H" aa)'转化为十进制
bbb=val("&H" bb)aaaa=chr$(aaa)
bbbb=chr$(bbb)
cccc=aaaa+bbbb再用mscomm对象
mscomm.out=cccc

解决方案 »

  1.   

    好象跟WINX下使用ANSI码有关因为我要求在输入框中输入一个十六进制数,我的端口或存储器里
    就是该十六进制值
      

  2.   

    boybluesky(boybluesky)
    可以帮忙详细点吗
      

  3.   

    vb会自动把字符型数据转换为unicode,所以处理二进制数据,一定要用byte数组。
    Private Sub MSComm1_OnComm()
        Dim Buffer As Variant
        Dim ist As String
        Dim temp(1) As Byte
        Dim page As Integer
        Dim a As Byte
        Dim p As Integer
        
        Dim intCount As Integer
        Dim bytRec()    As Byte
        Dim i As Integer
        
        temp(0) = 127
           ' MSComm1.InputMode = comInputModeText
        Select Case MSComm1.CommEvent
            Case comEvReceive
                 
                 intCount = MSComm1.InBufferCount
                 
                 Buffer = MSComm1.Input
                 
                 ReDim bytRec(1 To intCount)
                 
                 bytRec = Buffer
                
                 For i = 1 To intCount
                    f = f + 1
                    aa(f) = bytRec(i)
                 Next
                 
        End SelectEnd Sub