Я пытаюсь использовать мой C ++ в приложении Java, но терплю неудачу в простых вещах JNA, и я не знаю почему.
В целях тестирования я использую DLL из следующего руководства:
http://msdn.microsoft.com/en-us/library/vstudio/ms235636.aspx
Теперь я пытаюсь загрузить метод Add с JNA
import com.sun.jna.Native;
import com.sun.jna.Library;
public class Jnatest {
public interface CppLib extends Library {CppLib INSTANCE = (CppLib)Native.loadLibrary("MathFuncsDll", CppLib.class);double Add(double a, double b);
double Subtract(double a ,double b);
double Multiply(double a, double b);
double Divide(double a, double b);
}
public static void main(String[] args) {
System.setProperty("jna.library.path", "C:\\JNA\\");
CppLib lib = CppLib.INSTANCE;
double res;
res=lib.Add(1.0, 1.25);
System.out.println("add:\t"+res);
}
}
При компиляции я получаю следующее исключение при загрузке:
Exception in thread "main" java.lang.UnsatisfiedLinkError: %1 ist keine zulässige Win32-Anwendung.
at com.sun.jna.Native.open(Native Method)
at com.sun.jna.Native.open(Native.java:1759)
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:260)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:398)
at com.sun.jna.Library$Handler.<init>(Library.java:147)
at com.sun.jna.Native.loadLibrary(Native.java:412)
at com.sun.jna.Native.loadLibrary(Native.java:391)
at Jnatest$CppLib.<clinit>(Jnatest.java:9)
at Jnatest.main(Jnatest.java:23)
Во-первых, я думаю, что что-то не так с Путем Библиотеки, где находятся Файлы. Но System.setProperty («jna.library.path», «C: \ JNA \»); должен установить путь IMO.
Что еще может быть не так?
Благодарю вас
Дэвид
Задача ещё не решена.
Других решений пока нет …