我想从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);
并且可以确认函数接收数组并修改数据,但是,在函数完成后,返回的数组不会改变。
有人可以告诉我我做错了什么。
感谢。