DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: wjy13061029975
今日帖子: 3
在线用户: 4
导航: 论坛 -> 发布代码 斑竹:liumazi,ruralboy  
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2021/3/9 16:19:47
标题:
当前最新版本海康威视sdkC头文件转pas文件(V6.1.6.4_build20201231_Win32) 浏览:7146
加入我的收藏
楼主:  海康威视的SDK不支持Delphi,如果想用Delphi调用SDK里面的接口,需要先把其中C头文件转换成Delphi的pas文件。此文件是用本人编写的程序自动转换而成的Delphi版海康威视sdk接口文件,其中只有#if语句或宏函数等极为个别的地方使用手工做转换。 本人只使用了其中涉及录像机状态查询、回放等极为少数的功能,未对此文件做过完整的测试,仅供参考,如有问题欢迎留言

   对应的海康威视SDK版本:CH-HCNetSDKV6.1.6.4_build20201231_Win32
   sdk下载地址:https://download.hikvision.com/UploadFile/SDK/CH-HCNetSDKV6.1.6.4_build20201231_Win32.rar

  注意,下列函数因与常量或结构体(即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.h,如果需要最新版的HCNetSDK.pas,可用文本比较软件找到HCNetSDK.h改动的地方,相应修改HCNetSDK.pas就可以了
此帖子包含附件:bluestorm8_202139161946.rar 大小:797.9K
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2021/3/9 16:22:34
1楼: 自相矛盾啊。先说了,不支持,然后 提供了 pas。
如果说 没有 pas 就叫 不支持。那么 WIN 系统也是不支持 DELPHI 的。但是 ,还是有一堆人提供了 win 的 pas 。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 glwang (glwang) ★☆☆☆☆ -
盒子活跃会员
2021/3/9 17:02:28
2楼: 项目中可能会用到,感谢楼主辛苦!
----------------------------------------------
作者:
男 abencat (远离delphi的人) ★☆☆☆☆ -
盒子活跃会员
2021/3/15 8:46:55
3楼: 题主主动分享就是一个delphier的最高品质了,现在用户越来越少,能无私分享的都是值得大家鼓励和支持的
----------------------------------------------
delphi爱好者
作者:
男 szlbz (秋风) ★☆☆☆☆ -
盒子活跃会员
2021/3/15 9:37:34
4楼: 感谢楼主分享,辛苦啦!
----------------------------------------------
-
作者:
男 bdl1 (bdl1) ▲▲▲▲▲ -
普通会员
2021/3/16 9:54:04
5楼: 感谢楼主分享,辛苦啦!
----------------------------------------------
-我的博客
作者:
男 toupiao (wwww) ★☆☆☆☆ -
普通会员
2021/3/16 12:11:19
6楼: 谢谢楼主分享,
----------------------------------------------
-
作者:
男 littlestone08 (littlestone08) ★☆☆☆☆ -
普通会员
2021/3/17 17:34:51
7楼: 感谢楼主分享
----------------------------------------------
我和我追逐的梦,擦肩而过
作者:
男 denkun (dk) ★☆☆☆☆ -
普通会员
2021/3/18 8:08:39
8楼: 感谢楼主分享
----------------------------------------------
-
作者:
男 xiaotianwangzi (xiaotian) ★☆☆☆☆ -
普通会员
2021/3/28 23:18:42
9楼: 谢谢楼主,这么好的东西无私分享。
----------------------------------------------
-
作者:
男 ghslinux (ghslinux) ★☆☆☆☆ -
普通会员
2021/5/7 13:36:07
10楼: 谢谢楼主。
----------------------------------------------
-
作者:
男 inbreak (入侵) ★☆☆☆☆ -
盒子活跃会员
2021/5/11 15:07:49
11楼: 多谢楼主,
幸亏找到你这个,不然,死的心都有。。
如果自己弄的话,估计得几天。。

就光是在你这个基础上,调整到 SDK_Win32 V6.1.6.45_build20210302 
从早上8点弄到现在,都还没有弄完呢。

越弄越感慨。
所以来这里表示一下感谢。
----------------------------------------------
我是菜鸟,己经搞了十多年了,但是我仍然很菜。
作者:
男 vmao (毛小毛) ★☆☆☆☆ -
盒子活跃会员
2021/5/11 15:30:50
12楼: 楼上弄好了放盒子,方便后来人。
----------------------------------------------
-
作者:
男 crystalmoon (crystalmoon) ★☆☆☆☆ -
盒子活跃会员
2021/5/12 11:16:59
13楼: 支持楼主
----------------------------------------------
-
作者:
女 zj_mpy (nnnnn) ★☆☆☆☆ -
普通会员
2021/5/18 0:41:36
14楼: 32位可以
好像64位的程序 运行不了
----------------------------------------------
-
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2021/5/18 8:33:25
15楼: 要用for Windows x64的sdk,不能用32位的
----------------------------------------------
-
作者:
女 zj_mpy (nnnnn) ★☆☆☆☆ -
普通会员
2021/5/18 10:31:32
16楼: for window x64的sdk 好像也不行
----------------------------------------------
-
作者:
女 zj_mpy (nnnnn) ★☆☆☆☆ -
普通会员
2021/5/18 10:33:20
17楼: NET_DVR_RealPlay_V30(aCamHandle, @struPlayInfo, nil, pUser, true); 
这个函数返回值 0,但看不到视频
----------------------------------------------
-
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2021/5/18 12:01:34
18楼: 32位和64位的sdk头文件HCNetSDK.h是完全一致的。
你看一下HCNetSDK.pas里面NET_DVR_RealPlay_V30函数有没有针对32/64位作不同的处理,主要是看一下有没有涉及条件编译语句。
----------------------------------------------
-
作者:
男 stzxx (放弃) ★☆☆☆☆ -
普通会员
2022/7/2 13:58:28
20楼: 不是海康sdk不支持delphi,只是官方没有给出delphi示例,官方只给出了C++/C#/JAVA调用示例。delphi需要自己对函数和结构体进行声明。而且这个专用明很多年前就有开发者发布在网上了。
----------------------------------------------
-
作者:
男 l_wming (L_Wming) ★☆☆☆☆ -
普通会员
2022/7/4 10:48:44
21楼: 感谢,先收藏下载
----------------------------------------------
-
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2022/7/4 21:39:57
22楼: @tzxx (放弃) 既然很多年前就有开发者发布在网上了,能不能把链接给我?我想去看一下,因为之前我怎么找也找不到。
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2022/7/5 1:05:05
23楼: 很多年前搞过这个。不过代码早就找不到了。
----------------------------------------------
-
作者:
男 hguhgu (满汉全席) ★☆☆☆☆ -
普通会员
2022/8/1 9:25:27
24楼: 最简单的办法是用C++Builder开发了,就是编译慢一点,其它好像没啥差别
----------------------------------------------
-
作者:
男 doersoft (hnysoft.com) ★☆☆☆☆ -
普通会员
2022/8/1 16:49:18
25楼: 感谢楼主分享,辛苦啦!
----------------------------------------------
delphi|vue|golang hnysoft|hnyerp+mes+srm
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2023/7/11 14:47:02
26楼: 海康威视HCNetSDK.pas文件更新到最新的V6.1.9.48_build20230410版本:
1.此版本为HCNetSDK V6.1.9.48_build20230410,  和上一次提供的版本(HCNetSDKV6.1.6.4_build20201231)
   相比, HCNetSDK.h的文件大小增加了46KB左右.

2.上次提供的HCNetSDK.pas, 如果把程序编译为64版本的话可能会出现错误.
    原因是上次把if (defined(OS_WINDOWS64) || defined(OS_POSIX64)) 
    错误翻译为: {$IF Defined(WIN64) and Defined(LINUX64)}
    本次更正为: {$IF Defined(WIN64) or  Defined(POSIX64)}

3. 使用延迟加载函数方式,例如function NET_DVR_Init(): BOOL; stdcall; external DLLFILENAME Delayed;
    以实现函数加载前, 把.\DLL(SDK目录)这个路径动态添加到Path环境变量中, 使得程序能搜索到这个目录.
    目的是把SDK放在EXE文件所在目录的子目录, 避免把EXE文件和SDK的DLL文件混在一起.
此帖子包含附件:bluestorm8_202371114472.zip 大小:1.36M
----------------------------------------------
-
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2023/7/11 14:48:31
27楼: SDK须放在exe文件所在目录的DLL子目录;
此帖子包含附件:
PNG 图像
大小:151.9K
----------------------------------------------
-
作者:
男 jfhyn (贺兰之边) ★☆☆☆☆ -
普通会员
2023/7/11 15:14:40
28楼: 不错,支持热心人.
----------------------------------------------
-
作者:
男 denkun (dk) ★☆☆☆☆ -
普通会员
2023/7/12 8:01:47
29楼: 感谢!先收藏下载
----------------------------------------------
-
作者:
男 supermay (supermay) ★☆☆☆☆ -
盒子活跃会员
2023/7/12 9:34:56
30楼: 太好了,我一般是用哪些就转哪一些。
----------------------------------------------
链接:https://pan.baidu.com/s/12jzmECYKhGCsHBxz8tmB6w 提取码:pelr --来自百度网盘超级会员V9的分享
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2023/7/17 13:35:23
31楼: 上面提供的代码中,仍然有极个别地方有误, 为此我重新更新了转换程序,实现了HCNetSDK.pas里面全部内容都是100%由转换程序自动生成,免除了手动编辑产生的疏忽.

这里重新提供代码, 以此为准.
有问题欢迎交流.
此帖子包含附件:bluestorm8_2023717133523.zip 大小:1.37M
----------------------------------------------
-
作者:
男 denkun (dk) ★☆☆☆☆ -
普通会员
2023/7/17 16:51:38
32楼: 谢谢楼主分享
----------------------------------------------
-
作者:
男 abcjingtong (jingtong) ★☆☆☆☆ -
普通会员
2023/7/18 14:45:42
33楼: 感谢,一个东西能长久的关注并维护,值得给楼主点赞
----------------------------------------------
18114532@qq.com
作者:
男 bdl1 (bdl1) ▲▲▲▲▲ -
普通会员
2023/7/18 17:01:27
34楼: 给楼主点赞!!!
----------------------------------------------
-我的博客
作者:
男 newsxy (呼呼) ★☆☆☆☆ -
盒子活跃会员
2023/7/20 21:55:37
35楼: 谢谢楼主分享
----------------------------------------------
-
作者:
男 dacsd (ddd) ★☆☆☆☆ -
盒子活跃会员
2023/7/21 8:55:13
36楼: 谢谢楼主分享,给楼主点赞!!!
----------------------------------------------
-
作者:
男 ghslinux (ghslinux) ★☆☆☆☆ -
普通会员
2023/8/8 16:18:48
37楼: 有没有雄迈的,想求一份,谢谢。
----------------------------------------------
-
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2023/8/8 16:35:32
38楼: 没有,我还是第一次听说雄迈.更没用过这东西
----------------------------------------------
-
作者:
男 janker (janker) ★☆☆☆☆ -
盒子活跃会员
2023/8/8 17:08:22
39楼: 请问楼主是用了哪个CHeadToPascal工具,网上找的几个转换出错或效率低,想转换OpenSSL
----------------------------------------------
-
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2023/8/8 17:20:28
40楼: 是我自己用Delphi写的专用转换程序,跟网上的转换工具没有任何关系.

刚开始我也是想用网上的转换工具来做转换的, 但发现基本上都是问题一大堆,用不下去.
----------------------------------------------
-
作者:
男 janker (janker) ★☆☆☆☆ -
盒子活跃会员
2023/8/8 23:33:35
41楼: 楼主牛!!!
----------------------------------------------
-
作者:
男 tingyuzhe (听语者) ▲△△△△ -
普通会员
2023/8/27 21:10:19
42楼: 楼主,我在d7中编译时出现好多错误,看你的示例已经编译成功了,用的是什么版本。
----------------------------------------------
-
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2023/8/28 14:12:31
43楼: 我用的是delphi 10.3.3, 建议用Delphi xe或以上的版本.
Delphi 7已经是WinXP时代的东西, 应该放弃了.
----------------------------------------------
-
作者:
男 dacsd (ddd) ★☆☆☆☆ -
盒子活跃会员
2023/8/31 9:28:01
44楼: 楼主牛!!!
----------------------------------------------
-
作者:
男 dinkysoft (天地弦) ★☆☆☆☆ -
盒子活跃会员
2023/10/12 21:58:42
45楼: [dcc64 Error] HCNetSDK.pas(15597): E2026 Constant expression expected
----------------------------------------------
DIOCP官方社区|MyBean官方社区http://www.diocp.org/
作者:
男 dinkysoft (天地弦) ★☆☆☆☆ -
盒子活跃会员
2023/10/12 21:59:27
46楼: 楼主可以编译64位的吗?我在DX11下面编译错误
----------------------------------------------
DIOCP官方社区|MyBean官方社区http://www.diocp.org/
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2023/10/12 23:17:34
47楼: 这种头文件,是针对别人的 C 代码的库或者 DLL。

那个库本身如果是 32 位的,你用 64 位是没法去调用的。

所以,即便你把对应头文件的 Delphi 代码都修改为 64 位的,即便编译能通过,也没法运行。
----------------------------------------------
-
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2023/10/13 15:30:00
48楼: 我用Delphi 10.3.3测试了一下, 不论32位还是64位, 都能正常通过.
测试方法是新建一个的Windows VCL application, 然后把HCNetSDK.pas加入到这个项目中.最后用64bit进行编译.

另外编译为64bit的程序,需要使用64bit的DLL,这个海康威视有提供,需要到海康威视的网站下载.

你最好先用32bit编译一下看看有没有问题.
----------------------------------------------
-
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2023/10/19 11:25:59
49楼: @dinkysoft 你要使用31楼所提供的最新版本.
----------------------------------------------
-
作者:
男 andyliuxp (andyliuxp) ★☆☆☆☆ -
普通会员
2023/10/21 13:35:07
50楼: 老大,这个能支持门禁刷脸的机器吗?
----------------------------------------------
-
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2023/10/23 8:48:17
51楼: 这是海康威视提供的sdk,应该是支持的,不过你最好还是直接咨询一下海康威视.
----------------------------------------------
-
作者:
男 andyliuxp (andyliuxp) ★☆☆☆☆ -
普通会员
2023/10/24 12:49:16
52楼: @bluestorm8
好的,空了我试下.再来报告.
----------------------------------------------
-
作者:
男 abencat (远离delphi的人) ★☆☆☆☆ -
盒子活跃会员
2023/10/24 15:03:24
53楼: 是不是购买一台海康的摄像头就可以这样搞了
----------------------------------------------
delphi爱好者
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2023/10/26 11:04:02
54楼: 我只试过连录像机,没试过直连摄像头, 建议你咨询一下海康威视.
----------------------------------------------
-
作者:
男 makingmaking (making) ★☆☆☆☆ -
普通会员
2023/10/26 11:28:47
55楼: 必须点个赞 还是狠人多
----------------------------------------------
f
作者:
男 siow (siow) ★☆☆☆☆ -
盒子活跃会员
2023/10/26 20:46:32
56楼: SDK\海康威视\CH-HCNetSDKV6.0.2.35_build20190411_Win32当年是手翻的,放出来供大家参考,动态导入dll,好处是,有没有Dll都不会影响程序运行
此帖子包含附件:
PNG 图像
大小:20.7K
----------------------------------------------
-
作者:
男 siow (siow) ★☆☆☆☆ -
盒子活跃会员
2023/10/26 20:55:19
57楼: 选择性手翻了自己用到的函数
此帖子包含附件:siow_20231026205518.zip 大小:628.3K
----------------------------------------------
-
作者:
男 siow (siow) ★☆☆☆☆ -
盒子活跃会员
2023/10/26 21:25:54
58楼: PlayCtrl.dll单元,也是部分翻译
此帖子包含附件:siow_20231026212554.zip 大小:7.0K
----------------------------------------------
-
作者:
男 szfity (szfity) ▲▲▲△△ -
普通会员
2023/10/28 10:47:13
59楼: 求救:谁帮我看看错在哪? 登陆都没实现

procedure THMainFrm.Button1Click(Sender: TObject);
Var
  BResu: Boolean;
  int: Integer;

  UserP: LPNET_DVR_USER_LOGIN_INFO;
  MacsP: LPNET_DVR_DEVICEINFO_V40;
begin
  BResu := HCNetSDK.NET_DVR_Init();  //这句都通不过External exception C06D007E

  NET_DVR_SetConnectTime(2000, 1);
  NET_DVR_SetReconnect(10000, true);
  if not BResu then Exit;

  //开启SDK日志打印
  BResu := hCNetSDK.NET_DVR_SetLogToFile(3, './sdklog', false);

  UserP.sDeviceAddress := '192.168.1.5';
  UserP.wPort := 8000;
  UserP.sUserName := 'admin';
  UserP.sPassword := 'Aa12345678';
  UserP.bUseAsynLogin := Bool(0);
  int := HCNetSDK.NET_DVR_Login_V40(UserP, MacsP);
end;
----------------------------------------------
-
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2023/10/30 8:42:10
60楼: 可以参考一下https://blog.csdn.net/BlueStorm/article/details/120510162

不过,如果连NET_DVR_Init()都通不过, 应该是找不到正确的dll的问题.
----------------------------------------------
-
作者:
男 lanseriluo2022 (lanseriluo2022) ▲△△△△ -
普通会员
2024/1/1 22:51:45
61楼: 谢谢大神分享!头文件pas能不能转成Lazarus2.2.6下使用呢?尝试编译了下,不成功!感激不尽!
----------------------------------------------
-
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2024/1/2 11:47:36
62楼: 该pas只在Delphi 10.3.3测试过.
我没有用过Lazarus,需要你自己了解一下出错原因了, 你可以把每个出错的部分分别提取出来,研究一下有什么解决方法.
我想问题最大的原因应该是是缺数据类型,还有那些编译条件({$ifdef ***}之类)不知Lazarus是否有.
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行162.1094毫秒 RSS