简单的问题,但我找不到一个直接的答案:我希望在我的C结构中有一个128字节的字符数组.我在64位
Windows下运行它.我想使用以下内容将其整理到c#:
C代码:
typedef struct s_parameterStuct
{
int count;
char name[ 128 ];
} parameterStruct;
和c#代码:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public class parameterStuct
{
public int count;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
public char[] name;
}
由于char是c#中的2个字节,因此SizeConst应该是128或256.两者似乎都工作正常,但我知道其中只有一个是正确的.
最佳答案 大小为64,因为64个2字节的数量与128个1字节的数量相同.
我将使用字节数组进行编组,否则你将不得不忍受拆分值以获得C字符(单字节).