C++中结构:
typedef struct{
unsigned char rgbRed;
unsigned char rgbGreen;
unsigned char rgbBlue;
unsigned char rgbReserved;
}RGBCOLOR;typedef struct tagProdParam{
char name[40];
float value;
}PRODPARAM;typedef struct tagConfigInfo{
char          m_Product[80]; //产品名称
long          m_ID;       //产品标识
RGBCOLOR      m_Color[MAXCOLOR];   //产品色表
float         m_Value[MAXCOLOR];   //色表阈值
PRODPARAM     m_Param[MAXPARAM];
char          m_ProcMod[40];
char          m_Unit[20];
char          Reserved[140];
}CONFIGINFO;我在c#中这样写的
c#中:
        [StructLayout(LayoutKind.Sequential)]
        public struct RGBCOLOR
        {
            public byte rgbRed;
            public byte rgbGreen;
            public byte rgbBlue;
            public byte rgbReserved;
        };
        [StructLayout(LayoutKind.Sequential)]
        public struct PRODPARAM
        {
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst =40)]
            public string name;
            public float value;
        };
上面的两个结构定义有问题么?        [StructLayout(LayoutKind.Sequential)]
        public struct CONFIGINFO
        {
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
            public string m_Product; 
            public long m_ID;       
            public RGBCOLOR[] m_Color;   //请问这里该怎么定义?
          //[MarshalAs(UnmanagedType.by, SizeConst = 80)]
            public float[] m_Value;
            public PRODPARAM[] m_Param;//请问这里该怎么定义?
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)]
            public string m_ProcMod;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
            public string m_Unit;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst =140)]
            public string Reserved;
        };RGBCOLOR   m_Color[MAXCOLOR];   
PRODPARAM  m_Param[MAXPARAM];
在c#中该怎么定义?