<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 88, comments - 3, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    用JNI從C傳遞結構體到JAVA

    Posted on 2012-10-12 16:40 Milo的海域 閱讀(3863) 評論(0)  編輯  收藏 所屬分類: JavaLinux
    直接上C的實現
    typedef struct Foo {
        
    int len;
        
    char name[100];
    } Foo_t;

    JNIEXPORT jint JNICALL
    Java_TestJNI_foo(JNIEnv 
    *env, jobject obj, jobject fooObj) {

        Foo_t 
    * bar = malloc(sizeof(Foo_t));
        jclass clazz;
        jfieldID fid;

        
    //init the bar data of C
        strcpy(bar->name, "Yachun Miao");
        bar
    ->len = strlen(bar->name);

        
    // mapping bar of C to foo
        clazz = (*env)->GetObjectClass(env, fooObj);
        
    if (0 == clazz) {
            printf(
    "GetObjectClass returned 0\n");
            
    return (-1);
        }
        fid 
    = (*env)->GetFieldID(env, clazz, "len""I");
        (
    *env)->SetLongField(env, fooObj, fid, bar->len);

        fid 
    = (*env)->GetFieldID(env, clazz, "name""Ljava/lang/String;");
        jstring name 
    = (*env)->NewStringUTF(env, bar->name);
        (
    *env)->SetObjectField(env, fooObj, fid, name);

        free(bar);
        
    return 0;
    }

    對應的Java調用
    public class Foo {
        
    protected int len;
        
    protected String name;
    }


        
    private static native int foo(Foo fooObj);

        
    public static void main(String args[]) {
            System.loadLibrary(
    "mylib");

            Foo foo 
    = new Foo();
            foo(foo);
            System.out.println(foo.name);
            System.out.println(foo.len);

        }

    參考鏈接
    http://www.steveolyo.com/JNI/JNI.html#CSTRCJ
    http://docs.oracle.com/javase/6/docs/technotes/guides/jni/spec/types.html

    主站蜘蛛池模板: 一级女性全黄生活片免费看| 无码日韩人妻av一区免费| 全免费一级午夜毛片| 亚洲成A人片在线观看WWW| 亚洲国产成人AV网站| 99在线精品视频观看免费| 亚洲人成网站在线观看播放| 午夜亚洲WWW湿好爽| 麻豆高清免费国产一区| 亚洲精品无码专区在线在线播放| 亚洲欧美国产欧美色欲| 最近免费mv在线电影| 亚洲尤码不卡AV麻豆| 春暖花开亚洲性无区一区二区| 亚洲精品在线免费观看| 亚洲人成网77777色在线播放| 精品亚洲视频在线| 无码av免费毛片一区二区| 亚洲国产精品无码专区影院 | 国产免费人人看大香伊| 亚洲另类古典武侠| 一级毛片免费播放| 国产v亚洲v天堂无码网站| www永久免费视频| 全黄性性激高免费视频| 亚洲乱码中文字幕在线| 免费阿v网站在线观看g| 亚洲精品国产福利在线观看| 免费高清国产视频| 亚洲精品成人无码中文毛片不卡| 三级片免费观看久久| 少妇亚洲免费精品| 国产亚洲一卡2卡3卡4卡新区 | 久久99热精品免费观看牛牛| 亚洲精品国产高清嫩草影院| 99亚洲男女激情在线观看| 亚洲熟妇AV一区二区三区浪潮| 久视频精品免费观看99| 久久久久久亚洲AV无码专区| 国产精品免费大片一区二区| 亚洲国产精品成人|