java - 如何使用JNA访问Java代码中的DLL方法?

标签 java eclipse dll

通过运行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 接口(interface)应该使用适当的 parameter mapping 逐字声明所有方法。 。我在你的界面中没有看到任何方法。

请查看this link以及@Perception上面提到的链接

关于java - 如何使用JNA访问Java代码中的DLL方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9045415/

相关文章:

使用 Windows 和 MinGW 用 Eclipse 编写的 C++ 程序无法将输出显示到控制台 View

c# - 放置第三方 DLL 以供引用的最佳位置

java - java.io.PrintWriter 和 java.io.BufferedWriter 的区别?

java - 如何使用ssl证书创建okhttp

java - Android 查看资源膨胀

java - 致命异常 : main java. lang.NoClassDefFoundError : external library. jar.class Android studio

java:将表示两位数年份的字符串转换为四位数

c++ - Axis2 wsdl2c 未生成骨架中的所有调用

dll - 识别 DLL 的来源

visual-studio-2010 - 无需本地服务器安装的 SharePoint 2010 开发