通过运行System.loadLibrary("myAPI"),我验证了DLL文件“ myAPI.dll”可以成功加载到我的Eclipse Java项目中。现在,我需要从Java代码中调用此DLL文件中指定的方法。为此,我将JNA添加到了我的Java项目中。然后,我编写了下面给出的代码片段,该片段应能够获取类IProjectProjectFactory(在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上面提到的链接

10-08 18:13