Запустив System.loadLibrary("myAPI")
, я подтвердил, что DLL-файл «myAPI.dll» может быть успешно загружен в мой проект Java Eclipse. Теперь мне нужно вызвать методы, указанные внутри этого DLL-файла, из моего кода Java. Для этого я добавил JNA в свой проект Java. Затем я написал нижеприведенный фрагмент кода, который должен иметь возможность получать экземпляры классов IProject
и ProjectFactory
(указанные в файле DLL).Как получить доступ к DLL-методам в Java-коде с помощью JNA?
Я до сих пор не понимаю, как правильно реализовать это с помощью JNA. Я проверил разные потоки, например. this one, но те, которые я проверил, не дают ответа. Любая помощь высоко ценится. Благодарю.
import com.sun.jna.Library;
import com.sun.jna.Native;
public class MyClass {
public interface myAPI extends Library {
//...
}
void LoadProj() {
myAPI api = (myAPI) Native.loadLibrary("myAPI",myAPI.class);
String fileName = "xxx.sp";
IProject project; // this is wrong but shows what I am trying to do
try {
project = ProjectFactory.LoadProject(fileName);
}
catch (Exception ex) {
MessageBox.Show(this, ex.Message, "Load failure");
}
}
}
С какой ошибкой вы столкнулись? – Santosh
Посмотрите примеры на http://en.wikipedia.org/wiki/Java_Native_Access, они довольно кратки. – Perception
Это третий вопрос, который вы опубликовали в общей теме через час. Чтобы научиться делать это самостоятельно, вам нужно будет развивать свою способность работать с документацией и примерами, доступными и работать через нее самостоятельно. Я, например, менее склонен помогать кому-то, если он выглядит так, как будто они не прилагают никаких усилий. Кроме того, «я не знаю, как реализовать» не является хорошим вопросом форума. Если вам нужен учебник, найдите в Интернете учебник. Если у вас есть конкретный вопрос, напишите здесь. – arcy