第一段:
回复次数2
发表于 2007-06-06 13:55:41 楼主
在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
追答:
'谢谢,我测试过了您的方法可以。只是我使用API浏览器看到的CopyMemory的格式是
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
'同样也可以解决问题。等结帖的时候一定给您加分。