本帖最后由 bcrun 于 2013-03-12 20:20:40 编辑

解决方案 »

  1.   

    无法在 VB 中直接定义。
    InterfaceAndOperStatusFlags 正好 8 位,对应成 VB 中的 Byte 数组,但是由于存在 32 位对齐,实际占 4 字节。
    验证如下
    Option Explicit
    Type TestStruct
        InterfaceAndOperStatusFlags As Byte
        OperStatus                  As Long
    End TypeSub Main()
        Dim t As TestStruct
        Debug.Print LenB(t)
    End Sub
    '期待结构长度为5,实际输出为8你应该用 VC 生成一个 tlb 供 VB 引用。
      

  2.   


    这个你也得看VC生成的字节对齐情况,字节在到别的数据类型之间VC分配的单元不一定相连