0

我有一个 dll 驱动程序可以在我的 Java 应用程序中使用。我读到我需要为 JNI 创建一个 dll 桥接器。首先,我想知道是否存在一些实用程序来自动创建这座桥。

我有DLL的源代码,我也知道如何创建我的桥头文件(javah),但我不明白如何放入桥实现,因为我只需要调用驱动程序方法......你能帮忙吗我?

例如,这是我的驱动程序的标题:

BOOL CALLINGCONV IsInitialized();
int  CALLINGCONV Initialize(int Slot);
int  CALLINGCONV Finalize();
int  CALLINGCONV FinalizeML(int nSlot);

我还阅读了有关 JNA 的信息,它似乎更容易,但可能不是很快,是真的吗?谢谢你

4

2 回答 2

0

我可以向您推荐 2 个不同的库,它们可以更轻松地使用 JNI

于 2012-04-16T13:19:52.180 回答
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);
}
于 2012-04-16T13:27:34.097 回答