2011-07-04 5 views
1

Ma question est simple, comment puis-je instancier des objets Java sur C++ (bien que JNI) et retourner un tableau de ces objets créés?Objets Java sur JNI

Quelque chose comme:

jclass cls = g_jniEnv->FindClass("Lbr/com/iba/model/Annotation;");  
jmethodID meth = g_jniEnv->GetMethodID(cls, "setBookmark1", "(Ljava/lang/String;)V"); 

Comment j'instancier ces méthodes d'objet et d'appel reviennent alors cls à partir de cette méthode?

Répondre

4

En fait, je l'ai résolu:

JNIEXPORT jobject JNICALL Java_com_rmsdk_wrapper_RMServices_getBookmarkNew(
    JNIEnv *env, jobject thiso) { 
    jclass cls = g_jniEnv->FindClass("br/com/iba/model/Annotation"); 

    jobject obj = g_jniEnv->AllocObject(cls); 

    jmethodID meth1 = g_jniEnv->GetMethodID(cls, "setBookmark1", "(Ljava/lang/String;)V"); 
    jmethodID meth2 = g_jniEnv->GetMethodID(cls, "setPage", "(I)V"); 

    jstring jAssetName = g_jniEnv->NewStringUTF("Bookmark qualquer"); 

    g_jniEnv->CallObjectMethod(obj, meth1, jAssetName); 
    g_jniEnv->CallObjectMethod(obj, meth2, 2); 

    return obj; 
};