【发布时间】:2014-06-29 23:12:27
【问题描述】:
我正在尝试编写一个 Java 小程序来连接到条形码扫描仪并读取数据。条形码扫描仪带有一个 dll 文件,该文件具有访问它的功能。我对 Java 没有太多经验,但我已经知道如何使用 JNA 加载 dll 并调用本机函数。一些功能工作正常,但返回实际条形码的功能我似乎无法开始工作。它需要一个字符数组作为参数,并且通过引用传递不在 JNA 中,我尝试使用 Pointer 类并且无法使任何工作。原生函数定义如下。
NoMangle long DLL_IMPORT_EXPORT csp2GetPacket (char szBarData[],long nBarcodeNumber,long nMaxLength)
函数调用后 szBarData[] 变量应该包含条形码数据。
我尝试了几种不同的方式设置 JNA 映射,将 szBarData[] 参数设置为 char 数组、字符串、字节数组和指针,但都没有成功。
在 Visual Basic 中,您可以向 szBarData[] 传递一个字符串,它可以工作,只是不确定如何使用 JNA 在 Java 中完成此操作。
【问题讨论】:
-
尝试在java中传递一个“char[]”。