首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

用JNI技术调用java class后, 取不到返回值?该怎么处理

2012-06-14 
用JNI技术调用java class后, 取不到返回值?java函数: public boolean SendLog(String Access_Token, Strin

用JNI技术调用java class后, 取不到返回值?

java函数: public boolean SendLog(String Access_Token, String Title, String Content);

vc调用:
mid = env->GetMethodID(cls,"<init>","()V"); 
if(mid !=0)  
{  
jobj=env->NewObject(cls,mid);  
}  
mid = env->GetMethodID( cls, "SendLog","(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z");  
if(mid !=0)  
{  
  jboolean ret = env->CallBooleanMethod(jobj, mid, s1, s2, s3); 


我在SendLog()中都是return true, 没有returen false的地方.

运行结果ret为0, 这是不对的.

后来将SendLog()修改为什么都不做, 直接返回true, 这回对了, ret为1.

用JNI技术调用java class后, 取不到返回值, 怎么办?


[解决办法]
JNI 是java调用dll吧。
你这好像是VC调用java class呢
[解决办法]

探讨
java函数: public boolean SendLog(String Access_Token, String Title, String Content);

vc调用:
mid = env->GetMethodID(cls,"<init>","()V");
if(mid !=0)
{
jobj=env->NewObject(cls,mid);
}
mid……

热点排行