JNA回调函数的使用

xujiaweiDaShen 2013-11-19 03:52:19
我现在想用jna调用dll中的c++程序,程序是运行了,可回调函数一直没有执行,求赐教:
这是interface中的代码:
public interface HvCallback {	
public static interface PLATE_NO_CALLBACK extends Callback {
int invoke(HvResult lpParam, String pString, int dwStrLen, int dwType);
}
}

这是对接口实现的代码:

public class HvCallBackClass {
public static class PlateNoCallBack implements PLATE_NO_CALLBACK {
@Override
public int invoke(HvResult lpParam, String pString, int dwStrLen, int dwType) {
System.out.println("回调会的数据:");
return 1;
}
}
}

这是c++中的代码

typedef INT (CDECL* HVAPI_CALLBACK_TFD_STRING)(
PVOID pUserData,
LPCSTR pString,
DWORD dwStrLen,
DWORD dwType
)

这是执行的代码

static public PlateNoCallBack plateNoFunction = new PlateNoCallBack();
int resultReceive2 = HVInterface.INSTANCE.HVAPI_SetCallBackEx(DevResult.hv_devHandle, plateNoFunction,
DevResult, 0, CALLBACK_TYPE_TFD_STRING,null);

我感觉执行时的代码不会有错,有两个地方很可能出错
(1)是在c++中invoke参数传错了
(2)invoke不是自动启动的
自己尝试了修改了两天了,实在没办法了,一起探讨下,在线等!!!
...全文
281 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xujiawei0813 2013-11-20
  • 打赏
  • 举报
回复
我也在学,有人会不,一起求赐教

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧