JNA回调函数作为参数

时间:2012-10-30 22:01:06

标签: java callback jna

我正在尝试使用JNA使用Java中的本机dll。我是Java和JNA的新手。我在使用回调函数作为dll导出方法的函数参数时遇到了问题。

以下是本机函数的外观,

RegisterCallback(UNUM32 hMod, UNUM32 hCLL, CALLBACKFNC EventCallbackFunction)

这个方法基本上告诉DLL在DLL检测到某些事件时使用这个java方法作为回调。

这是回调函数原型,

EventCallbackFunction(UNUM32 eventType, UNUM32 hMod, UNUM32 hCLL, void *pCTag,   void *pTag)

这是java端实现,

Library.INSTANCE.RegisterCallback(hMod, hCLL, eventCallbackFunction);

eventCallbackFunction看起来像这样,

public interface EventCallbackInterface extends Callback {

public void callback(int eventType, int hMod,  int hCll, Pointer clltag, Pointer apiTag);

}

    public class Bridge{
public static EventCallbackInterface eventCallbackFunction = new EventCallbackInterface(){

    public void callback(int eventType, int hMod,  int hCll, Pointer clltag, Pointer apiTag) { System.out.println("Into the callback function: ");}

} }

虽然DLL识别出正确的事件,但我没有看到任何崩溃,但它根本不起作用。有人可以帮我这方面吗? 非常感谢提前!

0 个答案:

没有答案