海康威视delphi二次开发遇到的莫名奇妙的问题
用SDK处理按文件回放,遇到一个问题,返回的结果中读取的文件大小、开始时间、结束时间的错误的数值。
...
type
NET_DVR_FIND_DATA = record
sFileName: Array[0..100-1] of Char;
struStartTime: NET_DVR_TIME;
struStopTime: NET_DVR_TIME;
dwFileSize: LongInt;
end {NET_DVR_FIND_DATA};
LPNET_DVR_FIND_DATA = ^NET_DVR_FIND_DATA;
...
type
NET_DVR_TIME = record
dwYear: LongInt;
dwMonth: LongInt;
dwDay: LongInt;
dwHour: LongInt;
dwMinute: LongInt;
dwSecond: LongInt;
end {NET_DVR_TIME};
LPNET_DVR_TIME = ^NET_DVR_TIME;
...
strFile : NET_DVR_FIND_DATA;
...
lnext := NET_DVR_FindNextFile(lFindFile, strFile);
//获取文件名是正确的
kbmMemTB_FielPlay.FieldByName('Filename').AsString := PAnsiChar(@strFile.sFileName);
//获取文件大小,虽然有数值,但是是错误的,和官方DEMO获取的数值不一样
kbmMemTB_FielPlay.FieldByName('FileSize').AsInteger := LongInt(strFile.dwFileSize);
iYear := strFile.struStartTime.dwYear;//获取的年份数值也是错误的