<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

    主站蜘蛛池模板: 国产高潮久久免费观看| 亚洲 欧洲 视频 伦小说| 成年大片免费高清在线看黄| 国产又黄又爽又刺激的免费网址 | 91精品免费在线观看| 亚洲网址在线观看你懂的| 小草在线看片免费人成视久网| 亚洲国产一二三精品无码| 成人免费777777被爆出| 亚洲高清在线观看| 69av免费观看| 亚洲伊人久久大香线蕉| 成人免费午夜视频| 羞羞视频免费网站含羞草| 亚洲高清无码综合性爱视频| 黄床大片免费30分钟国产精品| 77777亚洲午夜久久多人| 午夜精品射精入后重之免费观看 | 久久精品免费视频观看| 亚洲综合区图片小说区| 免费A级毛片无码免费视| 国产亚洲精品AAAA片APP| 免费人成网站7777视频| 中文字幕成人免费高清在线| 亚洲AV无码国产精品麻豆天美| 午夜国产精品免费观看 | 男人j进女人p免费视频| 亚洲精品字幕在线观看| 中文字幕在线免费观看| 国产精品久久久久久亚洲影视| 亚洲综合日韩久久成人AV| 永久免费在线观看视频| 亚洲精品天堂成人片AV在线播放| 亚洲高清国产拍精品青青草原| 久久精品成人免费观看| 亚洲.国产.欧美一区二区三区| 永久亚洲成a人片777777| 波多野结衣免费在线观看| 免费人人潮人人爽一区二区| 久久亚洲AV成人无码电影| 在线观看免费精品国产|