1

JNA を使用して Java からネイティブ dll を使用しようとしています。私はJavaとJNAの両方が初めてです。dll エクスポート メソッドへの関数パラメーターとしてコールバック関数を使用すると問題が発生します。

ネイティブ関数の外観は次のとおりです。

RegisterCallback(UNUM32 hMod, UNUM32 hCLL, CALLBACKFNC EventCallbackFunction)

このメソッドは基本的に、DLL によって特定のイベントが検出されるたびに、この Java メソッドをコールバックとして使用するように DLL に指示します。

これがコールバック関数のプロトタイプです。

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 が正しいイベントを認識しているにもかかわらず、単に機能しません。誰かこの点で私を助けてくれませんか? よろしくお願いします!

4

0 に答える 0