在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中如何实现呢?求助呀。

解决方案 »

  1.   

    Option ExplicitPrivate Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
    Dim a As Single, Buffer(3) As Bytea = -7.738263E-09
    CopyMemory Buffer(0), a, 4
    MSComm1.Output = Buffer
      

  2.   

    谢谢,我测试过了您的方法可以。只是我使用API浏览器看到的CopyMemory的格式是Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long),同样也可以解决问题。等结帖的时候一定给您加分。