我有一个提供的 .dll,我需要使用 java 与它交互。
我是否必须重写 C 才能使用 jni.h 中提供的 JNI 类型?如 java sun 的 jni 示例所示。 否则,我如何声明我的 java 函数的 native 函数来传递和接收指针?
谢谢
最佳答案
您可能会发现 JNA有用
“JNA 使 Java 程序可以轻松访问 native 共享库(Windows 上的 DLL),而无需编写 Java 代码以外的任何东西——不需要 JNI 或 native 代码。此功能可与 Windows 的 Platform/Invoke 和 Python 的 ctypes 相媲美。访问是在没有代码生成的情况下在运行时是动态的。”
关于带有任意 C 代码的 Java native 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/917789/