软件注册站
热情软件屋

 
VB与C语言利用串口进行数据转换
编号: QA000599    
建立日期: 1999年3月7日 最后修改日期: 1999年3月11日
所属类别: C/C++ - 网络与通信

Visual Basic - 网络与通信
   
    vb3-vb5
    win98
    你好,有一个问题请教,是关于数据转换的。 我们知道不同的数据类型采用不同长的字节数, 如 integer (2 byte), long (4 byte), Double(8 byte), 现在我正在做一个和DOS环境下用BC31开发的程序接口,他发送给我的数据是按照上述二进制的格式存放的,我采用串口接收二进制的数据流。请问如何将他的数据转换出来。好象VB中没有现成的函数。我用的是VB4 (16 Bit)。请帮忙,是否有API或其他函数?(oceanlee)
   
    这个问题在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

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio