简单的问题,但我找不到一个直接的答案:我想在我的C结构中有一个包含128个字节的char数组。 我在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;
}
在c#中,一个char占用2个字节,那么SizeConst应该是128还是256呢?两者都能正常工作,但我知道只有其中一个是正确的。