Это небольшой процесс, но, похоже, он мне подходит. Сначала загрузите библиотеку JNA из здесь . Внутри почтового индекса вы найдете файл .jar
. Включите это в свой Java-проект в Eclipse, щелкнув правой кнопкой мыши по своему проекту и выбрав Путь сборки> Настроить путь сборки .
Это автоматически приведет вас к вкладке Библиотеки , но если нет, нажмите на нее. Затем нажмите кнопку Add External JAR справа и найдите файл JNA .jar
.
Теперь, когда у вас есть необходимые библиотеки в вашем проекте, создайте новый класс под названием «MathDLL». Отсюда вы можете ввести следующий код:
import com.sun.jna.Library;
import com.sun.jna.Native;
/** Simple example of native library declaration and usage. */
public class MathDLL {
public interface mathDLL extends Library {
mathDLL INSTANCE = (mathDLL) Native.loadLibrary("Math DLL", mathDLL.class);
// Function definition
long addition(long a, long b);
long subtraction(long a, long b);
long multiplication(long a, long b);
long division(long a, long b);
}
public static void main(String[] args) {
mathDLL dll = mathDLL.INSTANCE;
// 500 + 531
long additionResult = dll.addition(500, 531);
// 250 - 12
long subtractionResult = dll.subtraction(250, 12);
// 12 * 12
long multiplicationResult = dll.multiplication(12, 12);
// 400 / 20
long divisionResult = dll.division(400, 20);
System.out.println("Addition (should be 1031): " + additionResult + ", Subtraction (should be 238): " + subtractionResult + ", Multiplication (should be 144): " + multiplicationResult + ", Division (should be 20): " + divisionResult);
}
}
Этот код добавит вашу DLL в ваш код (убедитесь, что ваша DLL находится в той же папке, в которой выполняется ваш Java-проект), определите функции, найдите их в DLL во время компиляции, и вы сможете вводить значения и получать возвращаемые значения легко на Java!
Распространенные ошибки
- Убедитесь, что ваш проект DLL соответствует той же архитектуре вашей системы. Компьютер x86 требует x86 DLL для успешной работы в Java. Компьютер x64 нуждается в DLL x64. Дважды проверьте, что вы экспортировали его как правильную архитектуру.
- Не ставьте
.dll
после имени файла в Java. Программа знает, что ищет .dll
и выдаст ошибку, если вы ее укажете.
- Убедитесь, что ваши определения функций и параметры всегда совпадают с теми, которые объявлены в фактической DLL.
Я знаю, что ответил на свой собственный вопрос, но я надеюсь, что помог кому-то получить ответ, который он искал, немного легче, с меньшим количеством бега.