700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【Delphi】从海康威视SDK的C语言头文件HCNetSDK.h转换来的HCNetSDK.pas【更新】

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

时间:2024-02-17 09:09:58

相关推荐

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

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

对应的海康威视SDK版本:CH-HCNetSDKV6.1.4.6_build1220_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:/download/BlueStorm/12476964

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

样例代码:

//注:该命令只支持4条OSD的类型,通常用于V30以下的设备版本。constNET_DVR_GET_SHOWSTRING = 130; //获取叠加字符参数NET_DVR_SET_SHOWSTRING = 131; //设置叠加字符参数constNET_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设备辅助输出-02-28)NET_DVR_SET_AUXOUTCFG = 141; //设置报警触发辅助输出设置(HS设备辅助输出-02-28)NET_DVR_GET_PREVIEWCFG_AUX = 142; //获取-s系列双输出预览参数(-s系列双输出-04-13)NET_DVR_SET_PREVIEWCFG_AUX = 143; //设置-s系列双输出预览参数(-s系列双输出-04-13)//校时结构参数typeNET_DVR_TIME = record dwYear: DWORD; //年dwMonth: DWORD; //月dwDay: DWORD; //日dwHour: DWORD; //时dwMinute: DWORD; //分dwSecond: DWORD; //秒end;LPNET_DVR_TIME = ^NET_DVR_TIME;typeNET_DVR_TIME_V30 = record wYear: WORD; byMonth: BYTE; byDay: BYTE; byHour: BYTE; byMinute: BYTE; bySecond: BYTE; byISO8601: BYTE; //是否是8601的时间格式,即时差字段是否有效0-时差无效,年月日时分秒为设备本地时间 1-时差有效 wMilliSec: WORD; //毫秒,精度不够,默认为0cTimeDifferenceH: 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';

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。