将c char数组[128]封送到c#
发布时间:2020-12-16 07:31:59 所属栏目:百科 来源:网络整理
导读:简单的问题,但我找不到一个直接的答案:我希望在我的C结构中有一个128字节的字符数组.我在64位 Windows下运行它.我想使用以下内容将其整理到c#: C代码: typedef struct s_parameterStuct{ int count; char name[ 128 ];} parameterStruct; 和c#代码: [Str
简单的问题,但我找不到一个直接的答案:我希望在我的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字符(单字节). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |