我在我的项目中使用 JNA 从 Windows 中的 C 函数接收长值。
方法是:
long identifier();
当我在 64 位上使用我的虚拟机(Windows 64 的 JRE 1.7.0_05)时,我将编译后的 dll 用于 64 位,我得到了这个数字:
identifier = 528913750
如果我使用带有 32 位编译 dll 的虚拟机(Windows 32 的 JRE 1.7.0_07),我得到这个数字:
identifier = 369896101206
正确的是第一个!(对于 64 位)
它们的二进制值为:
64 bits = 11111100001101001010101010110
32 bits = 101011000011111100001101001010101010110
有人知道为什么我一开始就得到这个 1010110 的 32 位吗?