背景
我正在 Eclipse 中开发 Android 应用程序,现在遇到问题,需要您的帮助。所以我必须调用写成的函数C来自JAVA应用程序。但在我编写代码的方式上我有一些问题您可以在下面看到。我正在等待您的答案和想法......
C Code:
typdef struct blobData_s {
unsigned long length;
unsigned char data[1];
} blobData_t;
unsigned int CheckEnrollmentExist ( unsigned long hdevice, blobData_t* pInputInfo ) {
// Function code goes here
..........................
return some_value;
}
JAVA代码:
在JAVA代码中而不是unsigned long
I use int
这样我就可以写了。
class jblobData_c {
public int langth;
*Question 1.*
}
public class ApplicationMainClass extends Activity {
// Some code goes here
......................
public native int JCheckEnrollmentExist( int jhdevive, *Question 2.* );
}
问题1.
- 我可以用什么来代替
unsigned char
在JAVA代码中?
- 我必须用JAVA代码编写什么而不是
unsigned char data[1];
?
问题2。
- 我如何使用
class jblobData_c
代替blobData_t* pInputInfo
在JAVA代码中?
- 我必须用JAVA写什么而不是
blobData_t* pInputInfo
?
JNI代码:
JNIEXPORT jint JNICALL Java_com_Test_JCheckEnrollmentExist(JNIEnv* env, jobject obj, jint jhdevice, *Question 2.* ) {
// Call the base function from C code.
return CheckEnrollmentExist( jhdevice, *Question 3.*);
}
问题3。
- 我必须写什么
CheckEnrollmentExist
函数是 C 代码函数而不是blobData_t* pInputInfo
为了使该函数正常工作并且给定的参数相同
参考
- 如何在 JNI 中将 C 结构体来回传递给 Java 代码?
- 通过 JNI 高效传递大型 C 结构
- 通过 JNI 从 C 返回一个结构对象到 Java
- Java 和 C 之间传递数据
- 使用 long 将指针从 JNI 传递到 Java
- 通过 JNI 在 C 和 Java 之间传递指针
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)