jni java c++ 参数传递问题解决
生活随笔
收集整理的這篇文章主要介紹了
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';即可解決問題
轉載于:https://www.cnblogs.com/GoAhead/archive/2012/12/10/2811890.html
總結
以上是生活随笔為你收集整理的jni java c++ 参数传递问题解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hibernate一级缓存和二级缓存的区
- 下一篇: 【IBM Tivoli Identity