JNA和ZBar(条码阅读器库)
我正在使用 JNA 为 ZBar(条形码阅读器库)。
在JNA中,需要声明C中的结构体。例如::
// In C
typedef struct {
char* id;
char* name;
int age;
char* sectionId
} EMPLOYEE;
to
// In Java with JNA
public static class Employee extends Structure { // com.sun.jna.Structure
String id;
String name;
int age;
String sectionId;
}
但是在ZBar中,结构体没有成员。例如::
// zbar-0.10/include/zbar.h
// line:1009-1011
struct zbar_image_scanner_s;
/** opaque image scanner object. */
typedef struct zbar_image_scanner_s zbar_image_scanner_t;
没有声明结构的大小或成员。
如何在 JNA 中为这些结构编写接口?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
由于结构是不透明的,API 不需要了解其内容,因此您无需担心它们。
每当您看到对“zbar_image_scanner_t *”的引用时,只需使用指针即可。
Since the structures are opaque, the API can not require any knowledge of their contents, and so you don't need to worry about them.
Just use Pointer whenever you see a reference to "zbar_image_scanner_t *".
struct zbar_image_scanner_s 在 img_scanner.c 中声明为:
不知道编译的设置(即:ENABLE_QRCODE、NO_STATS 等)是什么;我将把 c 到 jna 结构的转换留给您,但映射规则如 https://jna.dev.java.net/javadoc/overview-summary.html 应该适用于它。
the struct zbar_image_scanner_s is declared in img_scanner.c as:
not knowing what your setup (ie: ENABLE_QRCODE, NO_STATS, etc) for compilation is; I will leave the c to jna structure conversion to you, but the mapping rules as desccribe in https://jna.dev.java.net/javadoc/overview-summary.html should apply to it.