使用JNA在Windows上调用__cpuid函数

时间:2012-10-24 00:15:45

标签: java windows jna cpuid

我需要用Java获取处理器信息(供应商,型号等)。我通常会使用C / C ++,但不幸的是,这必须在Java中为我当前的项目完成。我正在使用JNA进行本机访问,我已将JNA Library声明如下:

public interface CLibrary extends Library {
    public void __cpuid(int[] CPUInfo, int InfoType);
}

我正试图像这样打电话:

CLibrary c = (CLibrary) Native.loadLibrary("msvcrt", CLibrary.class);
int[] CPUInfo = new int[4];
c.__cpuid(CPUInfo, 0);

但是我得到Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'intrin': The specified module could not be found.这可能意味着我正在加载错误的库。

那么我需要加载哪些库才能访问Windows上的__cpuid函数?

1 个答案:

答案 0 :(得分:1)

由于__cpuid是编译器instrinsic(see MSDN)而不是函数,因此没有关联的DLL。你需要自己编写。