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的 展开
现在用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的 展开
展开全部
那个 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 类型吧试下。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询