Использование JNA для вызова функции __cpuid в Windows

Мне нужно получить информацию о процессоре (поставщик, модель и т. Д.) В 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. что, вероятно, означает, что я загружаю не ту библиотеку.

Так какую библиотеку мне нужно загрузить, чтобы получить доступ к __cpuid функция на винде?

1 ответ

Решение

Поскольку __cpuid является встроенной функцией компилятора ( см. MSDN), а не функцией, нет связанной DLL. Вам нужно будет написать свой собственный.

Другие вопросы по тегам