回 帖 发 新 帖 刷新版面

主题:求教:CB中调用MSComm控件的问题~

我在CB中调用了VB中的MSComm控件,结果发现在通信时,接受到的正数正确无误,而负数则会表示成十分大的正数。
请问该如何解决?现在是int型,该改成为什么类型?
谢谢~

回复列表 (共7个回复)

沙发

加unsigned int试试吧

板凳

谢谢~

在通信串口的程序里加了哦~
可是还是接受不到负数的呢
有没有什么其它的方法?
还是应该在解包程序里改数据类型呀?

3 楼

呵呵……

可以将数据类型由Word修改为short哦~

4 楼

楼主你好,请问接收到的数据怎么存入?
olevariant dd;
dd=mscomm1->input;
如果我用二进制传送,这个万能变量怎么变成字节型的变量阿?
我只用过文本方式:
wisestring(dd);
请指教〉:)

5 楼

可以在缓冲区里开辟一个数据空间
代码为:
r=MSComm1->Input;               //输入作为万能变量
     bytenum=r.ArrayHighBound(1);    //输入数据的大小
     for(i=0;i<bytenum+1;i++)
     {
          re_rbuf[buffptr++]=r.GetElement(i);
      }

6 楼

我也遇到了同类的问题

7 楼

我还碰到另外一个问题,就是用了MSCOMM控件后,编译后,程序在没有安装过VB的机子上运行,要出现“没有注册类型”的错误提示,该如何解决?

我来回复

您尚未登录,请登录后再回复。点此登录或注册