110,476
社区成员
发帖
与我相关
我的任务
分享
GetList(
HANDLE lLoginHandle,
DWORD dwInfoContol,
BYTE** pBuf,
LONG& lBufSize)
public static extern int GetList(int lLoginHandle, UInt32 dwType, out IntPtr hWnd, out int lSize);
var lSize = 0;
IntPtr pData = IntPtr.Zero;
var status = GetList(loginHandle, 2, out pData, out lSize);
CAMERA[] list = new CAMERA[lSize];
MarshalUnmananagedArray2Struct<CAMERA>(pData, lSize, out list);
public static void MarshalUnmananagedArray2Struct<T>(IntPtr unmanagedArray, int length, out T[] mangagedArray)
{
var size = Marshal.SizeOf(typeof(T));
mangagedArray = new T[length];
for (int i = 0; i < length; i++)
{
IntPtr ins = new IntPtr(unmanagedArray.ToInt64() + i * size);
mangagedArray[i] = Marshal.PtrToStructure<T>(ins);
}
}