JNA عدد صحيح غير موقّع بالرجوع إليه يعطي نتائج غريبة
-
25-09-2019 - |
سؤال
أحاول حاليًا الوصول إلى واجهة برمجة تطبيقات 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؟
شكرًا لك!
المحلول
للإجابة على سؤالي:
لا حرج في قصاصات الكود التي نشرتها هنا ، ولكن كان هناك خطأ آخر غير ذي صلة تمامًا لا علاقة له بالسؤال.
مغلق
لا تنتمي إلى StackOverflow