海康java版本SDK中jna.jar的版本就是3.0.9

<!-- 用的这个低版本的,换成高版本的需要修改extends Structure的类增加getFieldOrder方法 -->
		<dependency>
			<groupId>net.java.dev.jna</groupId>
			<artifactId>jna</artifactId>
			<version>3.0.9</version>
		</dependency>

如果要使用高版本的话需要处理:

Java开发使用jna方式调用动态库,我们Windows和Linux版本设备网络SDK对jna版本没有限制要求,但是Java Demo中使用的jna.jar版本比较老(3.0.9版本),结构体定义没有getFiledOrder,如果开发时更新了jna(比如更新到4.5.1版本),必须增加getFieldOrder,比如:
public static class NET_VCA_POINT extends Structure{
public float fX;
public float fY;
@Override
protected List getFieldOrder() {
// TODO Auto-generated method stub
return Arrays.asList("fX", "fY"); //这里参数顺序和SDK开发包的C++定义必须完全一致
}
}

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐