Я пытаюсь вызвать x86 DLL, которую я создал с помощью VC 6, из java-проекта на Eclipse, сначала попробуйте получить сообщение об ошибке, говорящее, что я не могу вызвать x86 DLL из среды x64 и что DLL может 'не быть загруженным.Итак, я установил x86 jre, и у меня больше нет проблем с зарядкой DLL.Но когда я пытаюсь вызвать функцию c ++, я получаю следующее исключение:
Exception in thread "main" java.lang.UnsatisfiedLinkError: mm.SimpleDLL.SimpleDLL_Calculation_Add(II)I
Может кто-нибудь помочь мне?Спасибо.
SimpleDLL.h
#ifndef SIMPLE_DLL_H
#define SIMPLE_DLL_H
namespace SimpleDll
{
extern class Calculation
{
public:
static __declspec(dllexport) int Add(int a, int b);
};
}
#endif SIMPLE_DLL_H
SimpleDLL.cpp
#include "SimpleDll.h"
namespace SimpleDll
{
int Calculation::Add(int a, int b)
{ return a + b; }
}
SimpleDLL.java
package mm;
public class SimpleDLL {
static
{
System.load("D:\\SimpleDLL.dll");
}
public static void main(String ar[])
{
System.out.println("Hello world from Java");
SimpleDLL t=new SimpleDLL();
int x = t.SimpleDLL_Calculation_Add(6, 7);
System.out.println("Resultat "+x);
}
public native int SimpleDLL_Calculation_Add(int a, int b);
}
Просмотр экспортированных функций DLL
Решено с использованием библиотеки JNA, я использовал эту ссылку для прохождения