c unsigned char cmd[] 对应的java中jna的什么类型

C的dll动态库中的方法为inttest(intrtuNum,unsignedcharcmd[],intlen),现在用java的JNA该如何调用,inttest(int... C的dll动态库中的方法为 int test(int rtuNum, unsigned char cmd[], int len ) ,
现在用java的JNA该如何调用,
int test(int rtuNum, byte[] str, int len);
int test(int rtuNum, char[] str, int len);
int test(int rtuNum, String str, int len);
这三个方法都无法调用
系统是32位的windows7 jdk为1.7的
展开
 我来答
jamxval
推荐于2016-06-07 · TA获得超过6823个赞
知道大有可为答主
回答量:4308
采纳率:82%
帮助的人:1444万
展开全部

那个  C 的 int 是和 Java 的 int 直接对应的么?

在 Java 中 int 是固定32位的。


C 的 char 是多少位的?Java 中 char 是无符号2字节,byte[] 是有符号 1 字节。


我试了一个 JNI 把下面 Java 编译了一下得到 C 的 Header 文件。

public class HelloN
{
public native int hello1(int a, byte[] b);
public native int hello2(short a, char[] b);
public native int hello3(long a, int[] b);
}
...
JNIEXPORT jint JNICALL Java_HelloN_hello1
  (JNIEnv *, jobject, jint, jbyteArray);

JNIEXPORT jint JNICALL Java_HelloN_hello2
  (JNIEnv *, jobject, jshort, jcharArray);

JNIEXPORT jint JNICALL Java_HelloN_hello3
  (JNIEnv *, jobject, jlong, jintArray);
...

 

JNI 中关于类型的样例:

更多追问追答
追问
int test(int rtuNum, unsigned char cmd[], int len ) ,

你直接帮我把上面这个C动态库中的方法用java调用,直接给我代码就ok了
追答
我觉得可以考虑  short 类型吧试下。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式