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);
....
}





...全文
53 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
AriDo 2002-12-11
  • 打赏
  • 举报
回复
up
rainman2001 2002-11-21
  • 打赏
  • 举报
回复
顺便问一下有没有用jni转换过linux或unix的动态库。
rainman2001 2002-11-21
  • 打赏
  • 举报
回复
JNIEXPORT void JNICALL Java_joptionpane_Frame1_SetParams
(JNIEnv *env, jobject obj, jobject jsubclass1 , jobject jsubclass2)
{
...
jclass jsub1 = env->GetObjectClass(jsubclass1);
jfieldID jfieldid = env->GetFieldID(jsub1,"TS_Ip1","I");
int Ip1 = env->GetIntField(jsub1,jfieldid);
...
}
ye_cl 2002-11-11
  • 打赏
  • 举报
回复
请大家进来来看看!!!

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧