JNA عدد صحيح غير موقّع بالرجوع إليه يعطي نتائج غريبة

StackOverflow https://stackoverflow.com/questions/2809128

سؤال

أحاول حاليًا الوصول إلى واجهة برمجة تطبيقات C باستخدام JNA. لكن لدي مشكلة في معلمات عدد صحيح غير موقعة يتم تمريرها بالرجوع إليها.

إذن ها هي وظيفة C المعنية:

int EE_DataGetNumberOfSample(DataHandle hData, unsigned int* nSampleOut);

في جافا لدي:

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؟

شكرًا لك!

هل كانت مفيدة؟

المحلول

للإجابة على سؤالي:

لا حرج في قصاصات الكود التي نشرتها هنا ، ولكن كان هناك خطأ آخر غير ذي صلة تمامًا لا علاقة له بالسؤال.

مغلق

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top