java jni struct_JNI Java class与C struct对应

/* DO NOT EDIT THIS FILE - it is machine generated */

#include "jni.h"

/* Header for class javabeans_MyStruct */

#ifndef _Included_javabeans_MyStruct

#define _Included_javabeans_MyStruct

#ifdef __cplusplus

extern "C" {

#endif

/*

* Class:     javabeans_MyStruct

* Method:    setStruct

* Signature: (Ljavabeans/Struct;)V

*/

JNIEXPORT void JNICALL Java_javabeans_MyStruct_setStruct

(JNIEnv *, jobject, jobject);

/*

* Class:     javabeans_MyStruct

* Method:    getStruct

* Signature: ()Ljavabeans/Struct;

*/

JNIEXPORT jobject JNICALL Java_javabeans_MyStruct_getStruct

(JNIEnv *, jobject);

#ifdef __cplusplus

}

#endif

#endif

/* DO NOT EDIT THIS FILE - it is machine generated */

#include "jni.h"

/* Header for class javabeans_Struct */

#ifndef _Included_javabeans_Struct

#define _Included_javabeans_Struct

#ifdef __cplusplus

extern "C" {

#endif

/*

* Class:     javabeans_Struct

* Method:    newStruct

* Signature: (JI)Ljavabeans/Struct;

*/

JNIEXPORT jobject JNICALL Java_javabeans_Struct_newStruct

(JNIEnv *, jclass, jlong, jint);

#ifdef __cplusplus

}

#endif

#endif

Struct_Imp.cpp:

#include "javabeans_Struct.h"

JNIEXPORT jobject JNICALL Java_javabeans_Struct_newStruct

(JNIEnv *env, jclass jc_this, jlong jl_id, jint ji_age){

jmethodID jm_init = env->GetMethodID(jc_this, "", "()V"); //构造器方法

jobject jobj_this = env->NewObject(jc_this, jm_init); //创建新对象

jfieldID jf_id = env->GetFieldID(jc_this, "id", "J");

jfieldID jf_age = env->GetFieldID(jc_this, "age", "I");

env->SetLongField(jobj_this, jf_id, jl_id);

env->SetIntField(jobj_this, jf_age, ji_age);

return jobj_this;

}

MyStruct_Imp.cpp:

#include "javabeans_MyStruct.h"

struct {

long id;

int age;

}Struct;

JNIEXPORT void JNICALL Java_javabeans_MyStruct_setStruct

(JNIEnv *env, jobject obj_this, jobject jobj_mystruct_struct){

jclass jc_mystruct = env->FindClass("javabeans/MyStruct");

jfieldID jf_mystruct_struct = env->GetFieldID(jc_mystruct, "struct", "Ljavabeans/Struct;");

env->SetObjectField(obj_this, jf_mystruct_struct, jobj_mystruct_struct);

}

JNIEXPORT jobject JNICALL Java_javabeans_MyStruct_getStruct

(JNIEnv *env, jobject obj_this){

jclass jc_mystruct = env->FindClass("javabeans/MyStruct");

jfieldID jf_mystruct_struct = env->GetFieldID(jc_mystruct, "struct", "Ljavabeans/Struct;");

jobject jobj_struct = env->GetObjectField(obj_this, jf_mystruct_struct);

return jobj_struct; }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值