关于C#与(C++)Com交互之数组传递
关于C#与(C++)Com交互之数组传递
通过C#分配内存空间给COM
void SetDataToCom()
{
var arrayy = new int[3]{1,2,3};
int size = Marshal.SizeOf(arrayy[0]) * arrayy.Length;
marshalDataList = Marshal.AllocHGlobal(size);
Marshal.Copy(arrayy, 0, marshalDataList, arrayy.Length);
Mycom.SetCom(marshalDataList, arrayy.Length, false);//Set Value To Com
}
void GetDataFormCom()
{
int[] dataList = new int[10];
int size = Marshal.SizeOf(dataList[0]) * dataList.Length;
marshalDataList = Marshal.AllocHGlobal(size);
Mycom.GetCom(marshalDataList, dataList.Length, true);//Get Value From Com
Marshal.Copy(marshalDataList, dataList, 0, dataList.Length);
}