关于mscomm的问题,在线等待,实现给分

银木头 2003-11-10 03:18:57
我有一段程序

Private Sub Open_MSCommXJ()
With MSCommXJ
.RThreshold = 1 '当接收缓冲区中的字符数为RThreshold时,触发OnComm事件;
.SThreshold = 1 '在OnComm事件产生之前在传输缓冲区中的最小字符数;
.DTREnable = True '使Data Terminal Ready线有效;
.EOFEnable = True '当找到EOF字符时激活OnComm事件;
.CommPort = Xj_COM '使用 COMn。
.Settings = "9600,e,8,1" '9600波特,偶校验,8位数据,一个停止位。
.InputLen = 0 '当输入占用时, 告诉控件读入整个缓冲区。
' .InputMode = comInputModeText
.PortOpen = True '打开端口。
End With
End Sub

接收程序:
Private Sub MSCommXJ_OnComm()
Dim InString As String
On Error Resume Next
With MSCommXJ
Select Case .CommEvent
Case comEvReceive '值2,收到Rthreshold个字符。
.InputLen = 0
If .InBufferCount Then
Sleep (100)
.InputMode = comInputModeText
Txt_Up.Text = .Input
End If
End Select
End With
End Sub

发送方是vc++或Delphi编写的程序:
如:发送1234.5
可得到的数据老是"???"或"",为什么,如何解决?
...全文
26 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
银木头 2003-11-11
  • 打赏
  • 举报
回复
他用的是bcd编码
since1990 2003-11-10
  • 打赏
  • 举报
回复
up
rainstormmaster 2003-11-10
  • 打赏
  • 举报
回复
是vb的unicode编码作怪

收到数据之后

dim s as string
s=strconv(收到的字串,vbunicode)
msgbox s
试试
flc 2003-11-10
  • 打赏
  • 举报
回复
学习
关注
银木头 2003-11-10
  • 打赏
  • 举报
回复
我做了一些修改将校检改为n,ParityReplace改为*,vc为发送方问题解决,可是Delphi的没有INPUTMODE改为安字节传输也试过,得出乱玛
superyixin 2003-11-10
  • 打赏
  • 举报
回复
这里你看看是不是类型不一致的缘故!还有你可以看一下把INPUTMODE改为安字节传输看是什么样的结果!QQ:68170255

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧