解析结构数组
public CHCNetSDK.NET_DVR_HDCFG m_struAlarmInCfg;
private void FrmSdk_Load(object sender, EventArgs e)
{
//CHCNetSDK.NET_DVR_DEVICESTATECFG sd =new CHCNetSDK.NET_DVR_DEVICESTATECFG();
//var ptr = Marshal.AllocHGlobal(Marshal.SizeOf(sd));
//Marshal.StructureToPtr(sd, ptr, false);
Int32 nSize = Marshal.SizeOf(m_struAlarmInCfg);
IntPtr ptrAlarmInCfg = Marshal.AllocHGlobal(nSize);
CHCNetSDK.NET_DVR_COMPRESSIONCFG_V30 ptrAlarmInCfg1 = new CHCNetSDK.NET_DVR_COMPRESSIONCFG_V30();
Marshal.StructureToPtr(m_struAlarmInCfg, ptrAlarmInCfg, true);
//Int32 nSize = Marshal.SizeOf(sd);
uint XML_ABILITY_OUT_LEN = 0;
CHCNetSDK.NET_DVR_GetDVRConfig(1, CHCNetSDK.NET_DVR_GET_HDCFG, 1, ptrAlarmInCfg
, (uint)nSize, ref XML_ABILITY_OUT_LEN);
m_struAlarmInCfg = (CHCNetSDK.NET_DVR_HDCFG)Marshal.PtrToStructure(ptrAlarmInCfg,
typeof(CHCNetSDK.NET_DVR_HDCFG));
[StructLayoutAttribute(LayoutKind.Sequential)]
public struct NET_DVR_HDCFG
{
public uint dwSize;
public uint dwHDCount;/*硬盘数(不可设置)*/
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = MAX_DISKNUM_V30, ArraySubType = UnmanagedType.Struct)]
public NET_DVR_SINGLE_HD[] struHDInfo;//硬盘相关操作都需要重启才能生效;
}
想解析这个
NET_DVR_SINGLE_HD需要怎么写啊?
please verify my account