我有一个提供的 .dll,我需要使用 java 与它交互。
我是否必须重写 C 才能使用 jni.h 中提供的 JNI 类型?如 java sun 的 jni 示例所示。否则,我如何声明我的 java 函数的本机函数来传递和接收指针?
谢谢
我有一个提供的 .dll,我需要使用 java 与它交互。
我是否必须重写 C 才能使用 jni.h 中提供的 JNI 类型?如 java sun 的 jni 示例所示。否则,我如何声明我的 java 函数的本机函数来传递和接收指针?
谢谢
您可能会发现JNA很有用
“JNA 使 Java 程序可以轻松访问本机共享库(Windows 上的 DLL),而无需编写 Java 代码以外的任何内容 - 不需要 JNI 或本机代码。此功能可与 Windows 的 Platform/Invoke 和 Python 的 ctypes 相媲美。访问在运行时是动态的无需代码生成。”
在某种程度上,是的。
大多数时候,您只需要编写一个小的“包装器”dll,其中的函数可以进行类型转换并委托给“真实”DLL 中的相应函数。