typedef bool (__stdcall *fMessCallBack)(long lLoginID, char *pBuf,unsigned long dwBufLen, long dwUser);
H264_DVR_API bool H264_DVR_SetDVRMessCallBack(fMessCallBack cbAlarmcallback, unsigned long lUser);
请问这个用Delphi 怎么写?

解决方案 »

  1.   

    type
      TfMessCallBack = function(lLoginID: integer; pBuf: PChar; dwBufLen: integer; dwUser: integer): Boolean; stdcall;
      TH264_DVR_SetDVRMessCallBack = function(cbAlarmcallback: fMessCallBack; lUser: integer): Boolean; stdcall;
      

  2.   

    应该是这样:type
      fMessCallBack = function(lLoginID: integer; pBuf: PChar; dwBufLen: integer; dwUser: integer): Boolean; stdcall;
      function H264_DVR_SetDVRMessCallBack(cbAlarmcallback: fMessCallBack; lUser: integer): Boolean; stdcall; external H264_DVR_API; //H264_DVR_API = 'MYDLL.dll';
      

  3.   

    再追问一句,怎么调用H264_DVR_SetDVRMessCallBack,第一个参数怎么写。
      

  4.   

    function MyfMessCallBack(lLoginID: integer; pBuf: PChar; dwBufLen: integer; dwUser: integer): Boolean;
    begin
      Result := True;
      //do something
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      lUser: integer;
    begin
      H264_DVR_SetDVRMessCallBack(@MyfMessCallBack, lUser);
    end;