prss.net
当前位置:首页 >> jAvA 通过jni 向 C 传递一个 jAvA 对象, C 如何取... >>

jAvA 通过jni 向 C 传递一个 jAvA 对象, C 如何取...

对于java传递进来的java对象模型,c要加载java类的原型,根据创建相应的c对象,获取java对象的方法的id,然后调用java对象的方法。比如有个java类customer对象作为jni参数传递到c程序,customer有方法String getName()。 JNIEXPORT jobject JNICA...

http://wenku.baidu.com/view/34048f3069eae009581bec7a.html这可以参数 ~

你可以在类里面使用构造方法给成员变量赋值 比如 下面这个类,有get和set方法,可以赋值,可以取值,不知道是否是你需要的 public class EUser { private String name; private int age; private String gender; public EUser() { } public EUse...

在java代码中我们会声明native方法,代码非常简单。如下所示 class HelloWorld { public native void displayHelloWorld(); static { System.loadLibrary("hello"); } public static void main(String[] args) { new HelloWorld().displayHelloW...

java数组传递给jni实际是指针,只是java禁止你直接在jni里对java数组操作,所以在jni需要对java数组转换为jni里可以操作的数组。典型的还有字符串,c struct等。 之所以禁止jni直接操作数组可能是jvm在安全等方面的考虑。jni调用涉及到java内存...

当int或Long传指针的值、不是指针的对象。

本地库代码中直接将指针转换成jlong传给java就可以了,同样,java层将该jlong类型的值传递本地库函数后做个强制类型转换就可以当成你的结点指针用了。 呵呵。

(*env)->NewStringUTF(env, "Hello from JNI!"); new 一个java的string

对于java传递进来的java对象模型,c要加载java类的原型,根据创建相应的c对象,获取java对象的方法的id,然后调用java对象的方法。比如有个java类customer对象作为jni参数传递到c程序,customer有方法String getName()。 JNIEXPORT jobject JNICA...

你先说是哪个平台呀? 我平时用的较多的是安卓平台.是这么写的: JNIEXPORT jint JNICALL JNI_SetImage(JNIEnv * env, jobject obj, jobject bitmap ) { char *pData=0; AndroidBitmapInfo info; void* pixels; int r=0; if ((r = AndroidBitmap_g...

网站首页 | 网站地图
All rights reserved Powered by www.prss.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com