现有外部dll的一个函数 function(int a, ref int b, out IntPtr c), 输出:c 在dll 的函数里定义为一个结构体数组的指针的指针,输出:b为这个结构体数组的大小, 假设结构体为 S {int x, int y, int z}
请问在调用这个函数前 怎样初始化 C ,以及调用完后怎样拿到其中某个S结构体的成员X,Y和Z谢谢
请问在调用这个函数前 怎样初始化 C ,以及调用完后怎样拿到其中某个S结构体的成员X,Y和Z谢谢
int ptr=marshal UnsafeAddrOfPinnedArrayElement(s1, 0)
没写过unsafe代码别瞎说.这种的我一般用unsafe做.
非unsafe的...参考1楼.
没写过unsafe代码别瞎说.这种的我一般用unsafe做.
非unsafe的...参考1楼.
因为我调用API 后 拿到的是存放这个数组首地址的指针的地址,即指针的指针,设dll中函数原型为function(int a, int * b, S ** c), b为拿到的数组的大小,C为存放S结构体数组首地址的指针的地址。
请问如何把输出C 转换为 我所需要的数组的首地址?这样我就可以用您所说的int ptr=marshal UnsafeAddrOfPinnedArrayElement(s1, b)命令拿到每个结构体了,万分感谢