如何发送数值在128—255之间的字符,操作系统Win2003。先告诉大家:chr(130)会自动转变成0。

解决方案 »

  1.   

    如果string类型就发送 string
    要不就用byte
    如果都是一个字符可以用int 或者long(记不住了好像支持,查吓msdn把)
      

  2.   

    我就是应用的string类型,string的每一个字符的产生就是使用chr()函数,当函数的参数超过128时候,发送出去的自动变成了0。有没有其他的函数或者API能够完成把128-255之间的数字变成字符的。呵呵,chr()的作用范围是多少,看MSDN说是Integer都可以,拿从我的系统发送出去到我的软件捕捉到时候,就变了?为什么?
      

  3.   

    比如
    dim data() as byte
    data = StrConv("测试字符串", vbFromUnicode)
    Winsock1.SendData data
    发送的数据中肯定包含了128—255之间的字符接收到的字符串只需要StrConv(data, vbUnicode)就能还原成圆字符串
      

  4.   

    chewinggum比较热心,方法也很好,不过我的问题按照您说的函数还是没有解决,因为我捕捉到的还是没有超过128的字符,顺便我使用协议分析仪察看每一个byte的值。下班了,晚上和你联络,谢谢你,到时候不会亏待你的热心,再次,谢谢!
      

  5.   

    从chewinggum的例子data = StrConv(“测试字符串”,vbFormUnicode)确实可以发送128-255之间的字符,但是,这些是汉字的内码不是我所需要的譬如&H82,我要发送的也就是这个。谢谢,
      

  6.   

    从您给出的例子data = StrConv(“测试字符串”,vbFormUnicode)确实可以发送128-255之间的字符,但是,这些是汉字的内码不是我所需要的譬如&H82,我要发送的也就是这个。谢谢,
      

  7.   

    我只是给你一个例子,意思是说经过这个测试能够证明128以上的数据可以发送接收。你也可以直接定义一个byte数组把你想要发送的&h82放在里面,发送过去。对于大于128的字符不能用chr()函数,而应该用chrw()
    举个例子:
    debug.print hex(ascw(chrw(&h82)))
    debug.print hex(asc(chr(&h82)))得出的结果是
    82
    0