zoukankan      html  css  js  c++  java
  • jni java c++ 参数传递问题解决

    一,问题 
    1.多参数回传 
    2.参数传递出现乱码 

    二,解决 
    1.使用byte[]数组传入c++,在生成的头文件里就会变成jbyteArray 类型 
    例如,java 中参数:byte[]account,头文件里参数变成jbyteArray account, 
    通过c++修改完account的值后,java要获取该值,直接使用 
    jbyte* jbAccount = (env)->GetByteArrayElements(env, account, 0); 
    char* szAccount = (char*)jbAccount; 
    指针的地址并不是account的地址,最后赋下值才行 
    env->SetByteArrayRegion(account,0,strlen(szAccount),jbyte* jbAccount); 

    2.String.getBytes()生成的byte数组传入c++后,在字符串的结尾会有多余乱码, 
    解决办法是,传入byte数组时,把数组的长度length,也传入c++, 
    令接受的数组strBuff[length]='\0';即可解决问题

  • 相关阅读:
    P1939 矩阵加速(数列)
    P3390 矩阵快速幂
    快速幂
    1236:区间合并
    1183:病人排队
    1230:寻找平面上的极大点
    1244:和为给定数
    1228 书架
    1222 放苹果
    洛谷5015标题统计
  • 原文地址:https://www.cnblogs.com/GoAhead/p/2811890.html
Copyright © 2011-2022 走看看