0

Java JNA の使用方法を学んでいて、Microsoft Kinect SDK から単純な関数を呼び出そうとしています。(NuiGetSensorCount) 接続されている kinect の数を返すだけです。

これが私の試みです:

import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.NativeLong;
import com.sun.jna.Pointer;

public class Driver {
    public interface KinectLibrary extends Library {
    KinectLibrary INSTANCE = (KinectLibrary)Native.loadLibrary(("Microsoft.Kinect"),KinectLibrary.class);

        //_Check_return_ HRESULT NUIAPI NuiGetSensorCount( _In_ int * pCount );
        NativeLong NuiGetSensorCount(Pointer pCount);
    }

    public static void main(String[] args) {
        Pointer devCount = new Pointer(0);
        KinectLibrary.INSTANCE.NuiGetSensorCount(devCount);
        System.out.println("Devices:"+devCount.getInt(0));
    }
}

しかし、私は得る:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'NuiGetSensorCount': The specified procedure could not be found.

at com.sun.jna.Function.<init>(Function.java:208)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:536)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:513)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:499)
at com.sun.jna.Library$Handler.invoke(Library.java:199)
at $Proxy0.NuiGetSensorCount(Unknown Source)
at Driver.main(Driver.java:30)

正しいネイティブ関数が見つかるようにコードを変更する方法について誰か助けてもらえますか? また、これを自分でデバッグできるように、情報/参照を提供します(Java JNAが探している機能を確認し、.dllに含まれるものと比較する方法)

4

1 に答える 1