 |
这个问题在VB5以上的版本比较简单,因为VB5的MSComm控件的Input是Variant型的,因此你可以指定任何类型的数组作为输入接收。你只要使用同C语言相同的数据类型就可以了。如果C语言发送的是规定类型,如长型,你需要将接收部分数据类型也定义和C语言一样就行了。VB支持C语言的所有类型。如果C语言是采用结构变量,你可以使用VB的Type语句定义结构变量。一般不需要采用API。
如果是VB3,其MSComm控件的Input是String型,就要使用API了,可以参考hmemcpy函数(Win32 API为CopyMemory)。它可以按字节拷贝数据,你可以将String中的数据拷贝到你的VB变量中。
如果是VB4,比较复杂。其MSComm控件的Input是String型,但VB4采用双字节方式,如果你使用英文版Windows没问题,中文版就不行了。你可以参考QA000406 "请问哪里有用API实现串口通讯的例子程序"、QA000388 "MSComm无法在中文Windows 95下传递二进制数据"。
相关书籍:
《串行端口大全》
《Delphi 串口通信编程》
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, Visual Basic, VB, 网络与通信, network, communicate, com, com1, com2。
|