2

我正在尝试使用名为Windows.Devices.PointOfService的 Windows dll 中的 CashDrawer 类( https://docs.microsoft.com/en-us/uwp/api/Windows.Devices.PointOfService.CashDrawer )的几个函数。使用 JNA 通过 Java 获取dll,此处提供了示例:https ://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/CashDrawer

我使用 JNA 调用msvcrt.dll尝试了一个简单的 helloworld,但在这里和所有示例中,我发现使用的函数直接在 dll 中。我的问题是我不知道如何在 Windows.Devices.PointOfService 中访问 CashDrawer 的功能。

简单的例子:

public interface JNAApiInterface extends Library {
    JNAApiInterface INSTANCE = (JNAApiInterface) Native.loadLibrary("msvcrt", JNAApiInterface.class);

    void printf(String format, Object... args);
}

public static void main(String args[]) {
    JNAApiInterface instance = JNAApiInterface.INSTANCE;
    instance.printf("coucou");
}

我想打开一个 CashDrawer,目前我只能这样做:

public interface JNAApiInterface extends Library {
    JNAApiInterface INSTANCE = (JNAApiInterface) Native.loadLibrary("Windows.Devices.PointOfService", JNAApiInterface.class);

    // ???
}

public static void main(String args[]) {
    JNAApiInterface instance = JNAApiInterface.INSTANCE;
    // ???
}

我没有成功的其他选择是使用 JNAerator 为Windows.Devices.PointOfService.dll生成 Java 接口,但我不知道该怎么做。

4

0 回答 0