如何在JNA中映射枚举

我有以下枚举如何在jna中映射?

该枚举在结构上进一步引用。

typedef enum

{

eFtUsbDeviceNotShared,

eFtUsbDeviceSharedActive,

eFtUsbDeviceSharedNotActive,

eFtUsbDeviceSharedNotPlugged,

eFtUsbDeviceSharedProblem

} eFtUsbDeviceStatus;

阿卜杜勒·哈利克(Abdul Khaliq)

回答:

如果使用的是JNA,则可能要显式指定Java中的枚举值。默认情况下,Java的基本枚举类型并没有真正为您提供该功能,您必须为EnumSet添加一个构造函数(请参阅this和this)。

编码C枚举的一种简单方法是使用包装在与枚举同名的类中的公共静态最终const int。您可以从Java枚举中获得大部分功能,但分配值的开销却少一些。

有一些很好的JNA例子,包括下面的代码片段(其被复制)都可以在这里。

假设您的C代码如下所示:

enum Values {

First,

Second,

Last

};

然后,Java看起来像:

public static interface Values {

public static final int First = 0;

public static final int Second = 1;

public static final int Last = 2;

}

以上是 如何在JNA中映射枚举 的全部内容, 来源链接: utcz.com/qa/428819.html

回到顶部