<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

    主站蜘蛛池模板: 免费人成视频在线观看不卡| 亚洲精品国产肉丝袜久久| 日本道免费精品一区二区| 久久国产精品亚洲综合| 免费看韩国黄a片在线观看| 牛牛在线精品免费视频观看| 久久精品国产99精品国产亚洲性色| 999国内精品永久免费观看| 国产亚洲精品精品精品| 亚洲av日韩av无码黑人| 亚洲中文无码永久免费| 国产亚洲精品免费视频播放| 亚洲一级免费视频| 亚洲综合国产一区二区三区| 日韩免费一区二区三区在线| 一级中文字幕乱码免费| 亚洲 日韩经典 中文字幕| 亚洲人成伊人成综合网久久久 | 亚洲日韩乱码中文字幕| 精品亚洲永久免费精品| 日本一道一区二区免费看 | 精品久久亚洲一级α| 亚洲AV成人片色在线观看| 国产精品另类激情久久久免费| 九九美女网站免费| 午夜亚洲国产精品福利| 亚洲人xxx日本人18| 久久久久久亚洲精品| 免费a级毛片无码a∨性按摩| 国产成人免费高清激情明星| a毛片免费观看完整| 美女被免费网站视频在线| 亚洲AV日韩综合一区尤物| 亚洲综合久久1区2区3区| 亚洲日本va在线视频观看| 日本免费观看网站| 无码日韩人妻av一区免费| 91在线老王精品免费播放| 久久精品成人免费观看| 黄色网址免费在线观看| 免费大片av手机看片高清|