delphi 回调函数

请大侠把这个VC的函数翻译成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);

谢谢

回答:

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";

回答:

实际调用时的回调函数这样写:

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;