【Delphi】从海康威视SDK的C语言头文件HCNetSDK.h转换来的HCNetSDK.pas【20230717更新】

  [最新版本V6.1.9.48_build2023041可到盒子论坛 v2.1   (里面的第31楼)更新]

    海康威视的SDK不支持Delphi,如果想用Delphi调用SDK里面的接口,需要先把其中C头文件转换成Delphi的pas文件。此文件是用本人编写的程序自动转换而成的Delphi版海康威视sdk接口文件,其中只有#if语句或宏函数等极为个别的地方使用手工做转换。 本人只使用了其中涉及录像机状态查询、回放等极为少数的功能,未对此文件做过完整的测试,仅供参考,如有问题欢迎留言

   对应的海康威视SDK版本:CH-HCNetSDKV6.1.4.6_build20191220_Win32

  注意,下列函数因与常量或结构体(即Delphi的Record)重名更改了函数名

     NET_DVR_ThrowBFrame -> NET_DVR_ThrowBFrame_F
     NET_DVR_SerialStart_V40 -> NET_DVR_SerialStart_V40_F
     NET_DVR_ManualSnap   -> NET_DVR_ManualSnap_F
     NET_DVR_ChangeWndResolution -> NET_DVR_ChangeWndResolution_F
 

点击此链接下载HCNetSDK.pas:https://download.csdn.net/download/BlueStorm/12476964

特别说明,5月30日更新了一下,把多维数组从 array[0..10] of array [0..15] of Byte改为array[0..10, 0..15] of Byte这种形式,上述地址下载的是更新后的文件。

样例代码:

//注:该命令只支持4条OSD的类型,通常用于V30以下的设备版本。
const
  NET_DVR_GET_SHOWSTRING = 130;    //获取叠加字符参数
  NET_DVR_SET_SHOWSTRING = 131;    //设置叠加字符参数

const
  NET_DVR_GET_EVENTCOMPCFG = 132;    //获取事件触发录像参数
  NET_DVR_SET_EVENTCOMPCFG = 133;    //设置事件触发录像参数
  NET_DVR_GET_FTPCFG = 134;    //获取抓图的FTP参数(基线)
  NET_DVR_SET_FTPCFG = 135;    //设置抓图的FTP参数(基线)
  NET_DVR_GET_AUXOUTCFG = 140;    //获取报警触发辅助输出设置(HS设备辅助输出2006-02-28)
  NET_DVR_SET_AUXOUTCFG = 141;    //设置报警触发辅助输出设置(HS设备辅助输出2006-02-28)
  NET_DVR_GET_PREVIEWCFG_AUX = 142;    //获取-s系列双输出预览参数(-s系列双输出2006-04-13)
  NET_DVR_SET_PREVIEWCFG_AUX = 143;    //设置-s系列双输出预览参数(-s系列双输出2006-04-13)

//校时结构参数
type
  NET_DVR_TIME = record 
    dwYear: DWORD;  //年
    dwMonth: DWORD;  //月
    dwDay: DWORD;  //日
    dwHour: DWORD;  //时
    dwMinute: DWORD;  //分
    dwSecond: DWORD;  //秒
  end;
  LPNET_DVR_TIME = ^NET_DVR_TIME;

type
  NET_DVR_TIME_V30 = record 
    wYear: WORD;  
    byMonth: BYTE;  
    byDay: BYTE;  
    byHour: BYTE;  
    byMinute: BYTE;  
    bySecond: BYTE;  
    byISO8601: BYTE;  //是否是8601的时间格式,即时差字段是否有效0-时差无效,年月日时分秒为设备本地时间 1-时差有效 
    wMilliSec: WORD;  //毫秒,精度不够,默认为0
    cTimeDifferenceH: AnsiChar;  //与UTC的时差(小时),-12 ... +14,+表示东区, byISO8601为1时有效
    cTimeDifferenceM: AnsiChar;  //与UTC的时差(分钟),-30, 30, 45,+表示东区,byISO8601为1时有效
  end;
  LPNET_DVR_TIME_V30 = ^NET_DVR_TIME_V30;

function NET_DVR_InitDevice_Card(pDeviceTotalChan: PLONG): BOOL; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_ReleaseDevice_Card(): BOOL; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_InitDDraw_Card(hParent: HWND; colorKey: COLORREF): BOOL; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_ReleaseDDraw_Card(): BOOL; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_RealPlay_Card(lUserID: LONG; lpCardInfo: LPNET_DVR_CARDINFO; lChannelNum: long): LONG; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_ResetPara_Card(lRealHandle: LONG; lpDisplayPara: LPNET_DVR_DISPLAY_PARA): BOOL; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_RefreshSurface_Card(): BOOL; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_ClearSurface_Card(): BOOL; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_RestoreSurface_Card(): BOOL; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_OpenSound_Card(lRealHandle: LONG): BOOL; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_CloseSound_Card(lRealHandle: LONG): BOOL; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_SetVolume_Card(lRealHandle: LONG; wVolume: WORD): BOOL; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_AudioPreview_Card(lRealHandle: LONG; bEnable: BOOL): BOOL; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_GetCardLastError_Card(): LONG; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_SetDspErrMsg_Card(dwMessage: DWORD; hWnd: HWND): BOOL; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_ResetDSP_Card(iChannelNum: LONG): BOOL; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_GetChanHandle_Card(lRealHandle: LONG): HWND; stdcall; external 'HCNetSDK.dll';  
function NET_DVR_CapturePicture_Card(lRealHandle: LONG; sPicFileName: PAnsiChar): BOOL; stdcall; external 'HCNetSDK.dll';  

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值