Использование 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. Вам нужно будет написать свой собственный.