我有一个在我的Java应用程序中使用的DLL驱动程序。 我读到我需要为JNI创建一个dll桥。首先,我想知道是否存在一些可以自动修复这座桥的实用工具。
我有Dll的源代码,我也知道如何修改我的桥头文件(javah),但我无法理解如何进入桥实现,因为我只需要调用驱动程序方法.... 你能救我吗?
例如,这是我的驱动程序的标题:
BOOL CALLINGCONV IsInitialized();
int CALLINGCONV Initialize(int Slot);
int CALLINGCONV Finalize();
int CALLINGCONV FinalizeML(int nSlot);
我也读过关于JNA的内容,它似乎更容易但也许不是很快,是真的吗? 哎呀
答案 0 :(得分:0)
答案 1 :(得分:0)
JavaCPP和JNA一样简单,但和原始JNI一样快。例如,假设头文件和库文件分别命名为“Driver.h”和“Driver.lib”,这个Java类可以高效地访问Java中的这四个函数:
import com.googlecode.javacpp.*;
import com.googlecode.javacpp.annotation.*;
@Platform(include="Driver.h",link="Driver")
public class Driver {
static { Loader.load(); }
public static native @Cast("BOOL") boolean IsInitialized();
public static native int Initialize(int Slot);
public static native int Finalize();
public static native int FinalizeML(int nSlot);
}