如何在C#中编组结构数组?我在C#中有以下结构:[StructLayoutAttribute(LayoutKind.Sequential)]publicstructRECORD{publicuintm1;公共单元m2;公共单位m3;我还需要将这些结构的数组(固定长度)传递给本机代码,本机代码将一些数据写入这些结构。该数组在C#中分配并传递给Cdll。我将导入函数声明为:[DllImport("marshall.dll",CallingConvention=CallingConvention.Cdecl)]privatestaticexternvoiddoIt(RECORD[]dataRecord);但我没有得到任何数据。我试过PInvokeInterop助手。我应该在这里使用IntPtr吗?有任何想法吗?编辑:这是调用本机函数的C#代码:RECORD[]rec=newRECORD[256];做它(记录);//这里rec的值都为零这里是C函数:intdoIt(RECORD*rec){//derefpointerandwritesomedata}我远不是P/Invoke专家,但我想知道如果将其作为输入/输出参数可能会有所帮助:我不会认为这是必要的,就像LayoutKind.Sequential我希望你的结构已经是blittable类型,并且数组也是blittable。以上是C#学习教程:HowtomarshalanarrayofstructuresinC#?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
