日期:2014-05-17  浏览次数:20747 次

在结构体中定义另一个结构体的数组,UnmanagedType值该怎么设置?
          先定义一个结构体

        [StructLayout(LayoutKind.Sequential)]
        public struct THREGION                     
        {
            public RECT rcBound;         
            public byte iAttribute;         
            RGNTYPE_xxx region type
            public byte iField;                  
            public byte nRecog_lang;                
        }
         之后再定义一个结构体,成员是第一个结构体的数组形式

        [StructLayout(LayoutKind.Sequential)]
        public struct THREGION_Array
        {
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
            public THREGION[] region;
        }
请问,第二个结构体中的UnmanagedType值应该设置为什么?

------解决方案--------------------
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
你写的这样就对了