5,388
社区成员
发帖
与我相关
我的任务
分享
//采用第一种方式,主要是考虑到保持函数的定义与c函数的定义一致, 使用方式如下:
var
PlayHandle: LongInt;
OsdTime: NET_DVR_TIME;
Rst: Boolean;
begin
Rst := NET_DVR_GetPlayBackOsdTime(PlayHandle, @OsdTime); //第一种方式
//Rst := NET_DVR_GetPlayBackOsdTime(PlayHandle, OsdTime); //第二种方式
end;
//其实两种方式是等效的,都是传OsdTime的地址。
//调用过程中不存在内存需要释放的问题。
function NET_DVR_GetPlayBackOsdTime(lPlayHandle: LongInt;
lpOsdTime: LPNET_DVR_TIME): Boolean; stdcall; external 'HCNetSDK.dll';
function NET_DVR_GetPlayBackOsdTime(lPlayHandle: LongInt;
var lpOsdTime: NET_DVR_TIME): Boolean; stdcall; external 'HCNetSDK.dll';
type
NET_DVR_TIME = record
dwYear, dwMonth, dwDay, dwHour, dwMinute, dwSecond: Cardinal;
end;
LPNET_DVR_TIME = ^NET_DVR_TIME;
function NET_DVR_GetPlayBackOsdTime(lPlayHandle: LongInt;
lpOsdTime: LPNET_DVR_TIME): Boolean; stdcall; external 'HCNetSDK.dll';