C#编组在c dll中作为输出参数运行的结构数组

时间:2016-09-07 18:52:53

标签: c# arrays dll struct marshalling

我想从c#应用程序调用c dll中的函数,它将固定数组的结构作为函数参数,并修改数据。

[DllImport("my_c_program.dll",  CallingConvention=CallingConvention.Cdecl)]
public static extern int GetData([MarshalAs(UnmanagedType.LPArray,
                                            ArraySubType = UnmanagedType.Struct,
                                            SizeConst=4)]
                                 MyDataStruct[] myData);

我调用了函数

   MyDataStruct [] myDataArrayOfStructs = new MyDataStruct[4];
   GetRangingMeasurementData(myDataArrayOfStructs);

并且可以确认函数接收数组并修改数据,但是,在函数完成后,返回的数组不会改变。

有人可以告诉我我做错了什么。

感谢。

0 个答案:

没有答案