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#中该怎么定义?
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#中该怎么定义?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货