一个VB函数,在改为Delphi时碰到些问题,请那位帮着改写一下,万分感谢!
Function getfloat(a() As Byte, offs As Integer) As Single
    Dim fltapp As Single, i As Integer, bytapp As Byte
    For i = 0 To 3
        bytapp = a(i + offs)
        CopyMemory ByVal VarPtr(fltapp) + (3 - i), ByVal VarPtr(bytapp), 1
    Next i
    getfloat = fltapp
End Function在Delphi中指针的加减只是对Integer和字符类型有效,何故

解决方案 »

  1.   

    指针的加减用Inc和Dec,无类型指针不能使用这个(Pointer型),PDWORD型,PWORD,结构指针(例如PRect)等都可以,并不是只能Integer和字符类型有效.
      

  2.   

    我用这个解决了, 与VB的结果一致, 大体代码为
    TSingle = Record
          s1, s2, s3, s4 : Byte;
      end;
    ...
    f : single;
    TSingle(f).s1 := 1;
    TSingle(f).s2 := 1;
    TSingle(f).s3 := 1;
    TSingle(f).s4 := 1;
      

  3.   

    楼主是湖北的吗?我也是湖北的,能把QQL留在上面吗?希望认识认识.
    我的QQ:78094438