現在、JNAを使用してCAPIにアクセスしようとしています。しかし、参照によって渡される符号なし整数パラメーターに問題があります。
問題のC関数は次のとおりです。
int EE_DataGetNumberOfSample(DataHandle hData, unsigned int* nSampleOut);
Javaでは次のようになります。
public int EE_DataGetNumberOfSample(Pointer hData, ByReference nSampleOut);
そして、これが私がそれをどのように使用しているかです:
IntByReference nSamplesTaken = new IntByReference();
edk.EE_DataGetNumberOfSample(hData.getValue(), nSamplesTaken);
int nativeNSamplesTaken = nSamplesTaken.getValue();
System.out.println(Integer.toBinaryString(nativeNSamplesTaken)+"("+nativeNSamplesTaken+")");
これは私に与えます:
11000100110110010011000000(51602624)
とはいえ、0である必要があります。
JNA-APIの使用方法に問題がありますか?
ありがとうございました!