JNA结构体

JNA中级篇 回调函数详解

萝らか妹 提交于 2019-12-04 11:13:06
JNI 技术是双向的,既可以从Java 代码中调用原生函数,也可以从原生函数中直接创建 Java 虚拟机,并调用Java 代码。但是在原生函数中调用java代码要写大量C代码,这对大多数java程序员来说是很头疼的。 使用JNA,我们不用编写C代码就能在原生代码中调用java代码。JNA 可以模拟函数指针,通过函数指针,就可以实现在原生代码中调用Java 函数。 下面直接用代码进行说明: 原生代码定义: //方法定义 LONG StartListenServer(const Alarm_Listen_Param *param); //Alarm_Listen_Param结构体 struct{ IpAddress struIPAdress; MessageCallBack fnMsgCb; void *pUserData; BYTE byProtocolType; BYTE byRes[31]; }Alarm_Listen_Param, *Alarm_Listen_Param; //ip结构体 struct{ char szIP[128]; WORD wPort; BYTE byRes[2]; }IpAddress, *IpAddress; //回调函数声明 typedef BOOL (CALLBACK *MessageCallBack)( LONG iHandle,