将c char数组[128]封送到c#

将c char数组[128]封送到c#,第1张

概述简单的问题,但我找不到一个直接的答案:我希望在我的C结构中有一个128字节的字符数组.我在64位 Windows下运行它.我想使用以下内容将其整理到c#: C代码: typedef struct s_parameterStuct{ int count; char name[ 128 ];} parameterStruct; 和c#代码: [StructLayout(Layout 简单的问题,但我找不到一个直接的答案:我希望在我的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字符(单字节).

总结

以上是内存溢出为你收集整理的将c char数组[128]封送到c#全部内容,希望文章能够帮你解决将c char数组[128]封送到c#所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1230404.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存