简单的问题,但我找不到直接的答案:我想在我的 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;
}
由于 char 在 c# 中是 2 个字节,因此 SizeConst 应该是 128 还是 256。两者似乎都可以正常工作,但我知道其中只有一个是正确的。