111,092
社区成员




[DllImport(dllPath, EntryPoint = "DPSDK_QueryAlarmInfo")]
// c/c++: int DPSDK_QueryAlarmInfo (IN int32_t nPDLLHandle, IN Alarm_Query_Info_t* pQuery,
// INOUT Alarm_Info_t* pInfo,
// IN int nFirstNum,
// IN int nQueryCount,
// IN int nTimeout = DPSDK_CORE_DEFAULT_TIMEOUT)
public extern static int DPSDK_QueryAlarmInfo([In]int nPDLLHandle,[In] IntPtr pQuery,
[In,Out] IntPtr pInfo,[In] int nFirstNum,[In] int nQueryCount,[In] int nTimeout);
[StructLayout(LayoutKind.Sequential)]
public struct tagAlarmQueryInfo
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = DPSDK_CORE_CHL_ID_LEN)]
public string szCameraID; // 通道ID
public System.UInt64 uStartTime; // 开始时间
public System.UInt64 uEndTime; // 结束时间
/*dpsdk_alarm_dealwith_e 这个我不知道是什么类型,如果是int就这样处理*/
public int nDealWith; // 报警处理类型,参考表2
public int nAlarmType; // 报警类型,参考表3
}
tagAlarmQueryInfo QueryInfo = new tagAlarmQueryInfo();
int nSizeOfQueryInfo = Marshal.SizeOf(QueryInfo);
IntPtr pQueryInfo = Marshal.AllocHGlobal(nSizeOfQueryInfo);
QueryInfo = (tagAlarmQueryInfo)Marshal.PtrToStructure(pQueryInfo, typeof(tagAlarmQueryInfo));
Marshal.FreeHGlobal(pQueryInfo);