0
我在我的項目中使用JNA從Windows中的C函數接收長的值。JNA長返回值在32位和64位不同
的方法是:
long identifier();
當我用我的虛擬機(JRE 1.7.0_05適用於Windows 64)的64位我使用編譯的.dll文件的64位,我得到這個號碼:
identifier = 528913750
如果我使用的虛擬機(JRE 1.7.0_07窗戶32)與32位的已編譯的DLL,我得到這個號碼:
identifier = 369896101206
正確的是第一個! (64位)
他們的二進制值是:
64 bits = 11111100001101001010101010110
32 bits = 101011000011111100001101001010101010110
有人知道我爲什麼會得到這個1010110開頭的32位?
對不起,我通過從JNA更改爲NativeLong來解決問題 –
沒有標識符()的代碼,它是在c –
中實現的本地函數,我建議您將此添加爲答案並接受它。注意你的速度。 – Fildor