通过运行System.loadLibrary("myAPI")
,我验证了DLL文件“ myAPI.dll”可以成功加载到我的Eclipse Java项目中。现在,我需要从Java代码中调用此DLL文件中指定的方法。为此,我将JNA添加到了我的Java项目中。然后,我编写了下面给出的代码片段,该片段应能够获取类IProject
和ProjectFactory
(在DLL文件中指定)的实例。
我仍然不知道如何使用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");
}
}
}
最佳答案
不知道您要面对什么问题,但是作为一种实践,您的myAPI接口应逐字声明所有带有适当parameter mapping的方法。我在界面内看不到任何方法。
请检查this link以及@Perception上面提到的链接