大华API调用

andson_wang andson_wang 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
以下是浙江大华API的接口函数原型以及相关结构声明:

查询局域网设备

BOOL CLIENT_SearchDevices(
char* szBuf,
int nBufLen,
int* pRetLen,
DWORD dwSearchTime
);
Parameters
[out]szBuf
用户开辟缓存,用来接收DEVICE_NET_INFO结构体,查询到几个设备,就返回几个这样的结构体
[in]nBufLen
szBuf缓存长度
[out]pRetLen
返回DEVICE_NET_INFO结构体长度之和
[in]dwSearchTime
查询等待时间


结构定义如下:

DEVICE_NET_INFO{
char szIP[DH_MAX_IPADDR_LEN];
int nPort;
char szSubmask[DH_MAX_IPADDR_LEN];
char szGateway[DH_MAX_IPADDR_LEN];
char szMac[DH_MACADDR_LEN];
char szDeviceType[DH_DEV_TYPE_LEN];
BYTE bReserved[32];
};


我在C#环境中想调用此接口函数,我的声明以及调用代码如下:

C#中结构声明:

[StructLayout(LayoutKind.Sequential)]
public struct DEVICE_NET_INFO
{
/// <summary>
/// IP地址
/// </summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public byte[] szIP;

/// <summary>
/// 端口
/// </summary>
public int nPort;

/// <summary>
/// 子网掩码
/// </summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public byte[] szSubmask;

/// <summary>
/// 网关
/// </summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public byte[] szGateway;

/// <summary>
/// Mac
/// </summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)]
public byte[] szMac;

/// <summary>
/// 设备类型
/// </summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
public byte[] szDeviceType;

/// <summary>
/// 保留字节
/// </summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
public byte[] bReserverd;

}

C#中接口函数声明:
[DllImport("dhnetsdk.dll")]
private static extern bool CLIENT_SearchDevices([Out,MarshalAs(UnmanagedType.LPArray)] DEVICE_NET_INFO[] dni, int nBufLen, out int pRetLen, int dwSearchTime);

C#中调用代码如下:

DEVICE_NET_INFO[] dni;
dni = new DEVICE_NET_INFO[100];
int pRetLen = 0;
int uSearchTime = 5000;
bool ret = DHClient.DHSearchDevices(dni, 100 * Marshal.SizeOf(typeof(DEVICE_NET_INFO)), out pRetLen, uSearchTime);

调用不成功,每次都是返回False,请大人帮忙解决,谢谢!!!
...全文

相关推荐

java后端调用大华视频的demo

有两个demo,都是java调用dll的列子,可以参考下。。。

老何_低调

Python实战|如何使用Python调用大华SDK实现视频监控

而视频监控作为一种非常有效的手段,越来越得到人们的重视和使用。大华科技是国内著名的视频监控设备厂商之一,其提供的SDK可以方便地实现视频监控相关功能。首先,我们需要下载并安装大华SDK,然后调用SDK提供的API实现视频监控相关功能。由于大华SDK是基于C++编写的,因此我们需要使用ctypes库来实现Python调用C++代码的功能。当然,大华SDK还提供了众多其他的API,可以实现诸如回放、抓拍、云台控制等更加复杂的功能。在今后的开发工作中,读者可以通过类似的方法,实现更多有趣的功能。

完美代码

Java集成大华SDK的人流数据统计示例

软件开发工具包(SDK)是一套为了帮助开发者创建应用程序而提供的开发工具和接口的集合。大华SDK作为行业领先的安全监控设备制造商,为开发者提供了丰富的API接口,以及集成开发所需的工具与文档,以便于开发者能快速、有效地进行应用开发和优化。IntelliJ IDEA是Java开发者中非常流行的选择,提供了一体化解决方案,它支持实时代码分析和自动修复功能。安装步骤:1. 从官方网站下载最新版的IntelliJ IDEA。2. 运行安装程序,并按提示完成安装。

艾古力斯

web调用大华摄像头展示视频

html页直接查看摄像头视频,内有说明文档。

刘明111

web端调用大华摄像头demo及大华控件开发包编程指南文档

html页面调用大华摄像头,实现实时监控,以及回放、视频下载,云控制、视频窗口个数、预览、通道等并且是根据时间范围下载视频demo,并且附带了exe用于快速安装ocx控件

奔跑吧茂林小子
评论 5
收藏 已收藏
分享
返回顶部
andson_wang
C# 111,128 成员 642,536 内容