VB中利用串口发送浮点数,也就是实现C语言中union
在VB中如何发送一个浮点数,例如 -7.738263E-09 如何通过串口(mscomm控件发送,在另一端使用单片机接收。我知道在VC中只要使用
union
{
char temp[4];
float num;
}at;
at.num = -7.738263E-09;
利用
CByteArray array;
array.RemoveAll();
array.SetSize(Count);
for(i=0;i <4;i++)
array.SetAt(i, at.num[i]);
m_Comm.SetOutput(COleVariant(array)); // 发送数据
但是在VB中如何实现呢?求助呀。
[解决办法]
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32 " Alias "RtlMoveMemory " (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Dim a As Single, Buffer(3) As Byte
a = -7.738263E-09
CopyMemory Buffer(0), a, 4
MSComm1.Output = Buffer