delphi 回调函数
NET_DVR_API BOOL __stdcall NET_DVR_SetRealDataCallBack(LONG lRealHandle,void(CALLBACK *fRealDataCallBack) (LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer,DWORD dwBufSize,DWORD dwUser),DWORD dwUser);
谢谢
回答:
typeRealDataCallBack = procedure(lRealHandle: Longint; dwDataType: DWORD; pBuffer: PByte; dwBufSize, dwUser: DWORD);
function NET_DVR_SetRealDataCallBack(lRealHandle: Longint; CallBack: RealDataCallBack; dwUser: DWORD): BOOL; stdcall; external "HCNetSDK.dll";
回答:
实际调用时的回调函数这样写:type
RealDataCallBack = procedure(lRealHandle: Longint; dwDataType: DWORD; pBuffer: PByte; dwBufSize, dwUser: DWORD);
function NET_DVR_SetRealDataCallBack(lRealHandle: Longint; CallBack: RealDataCallBack; dwUser: DWORD): BOOL; stdcall; external "HCNetSDK.dll";
procedure MyRealDataCallBack(lRealHandle: Longint; dwDataType: DWORD; pBuffer: PByte; dwBufSize, dwUser: DWORD);
begin
//此处写回调处理函数的代码
end;
......
var
lRealHandle : Longint;
begin
......
lRealHandle := NET_DVR_RealPlay(......);
......
NET_DVR_SetRealDataCallBack(lRealHandle, MyRealDataCallBack, 1000); //1000为用户数据, 可以借此区分不同的回调
......
end;