我正在为Win32上的'long'和Win64上的'int64'创建数据类型的类型映射。如何发现我正在运行哪个以便将正确的值传递给IntegerValue构造函数?
我想知道JVM是作为32位还是64位应用程序运行。
答案 0 :(得分:1)
JNA提供Platform.is64Bit()
。
您可以根据IntegerType
定义自己的类型,class MyInteger extends IntegerType {
private static final boolean is64Bit = Platform.is64Bit();
public MyInteger() {
this(0);
}
public MyInteger(long value) {
super(is64Bit ? 8 : Native.LONG_SIZE, value);
}
}
根据当前运行的架构选择其大小。
{{1}}