JAVA类中把另2个JAVA类实例作为参数传递给JNI native函数,在VC中怎样调用这2个java类实例的成员变量/函数呢?
ye_cl 2002-11-08 05:18:52 有3个JAVA类,mainclass把另2个java类实例作为参数传给JNI接口, 那么在VC中怎样调用这2个java类实例的成员变量/函数呢? 用env->GetObjectClass函数是得到mainclass这个JAVA类吧,在这边好象不行.
运行JAVA时.cpp文件中env->GetFieldID这一行出错,提示:"Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=0x6D36448A...."
JAVA类:
public class mainclass {
SubClass1 subclass1 = new SubClass1;
SubClass2 subclass2 = new SubClass2;
public native void SetParams(SubClass1 ,SubClass2 );
...
SetParams(subclass1 ,subclass2);
...
}
.cpp文件中:
JNIEXPORT void JNICALL Java_joptionpane_Frame1_SetParams
(JNIEnv *env, jobject obj, jobject jsubclass1 , jobject jsubclass2)
{
...
jfieldID jfieldid = env->GetFieldID((jclass)jsubclass1,"TS_Ip1","I");
jint jIp1 = env->GetIntField(jsubclass1,jfieldid);
....
}