jni java c++ 参数传递问题解决
一,問題?
1.多參數(shù)回傳?
2.參數(shù)傳遞出現(xiàn)亂碼?
二,解決?
1.使用byte[]數(shù)組傳入c++,在生成的頭文件里就會變成jbyteArray 類型?
例如,java 中參數(shù):byte[]account,頭文件里參數(shù)變成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數(shù)組傳入c++后,在字符串的結(jié)尾會有多余亂碼,?
解決辦法是,傳入byte數(shù)組時,把數(shù)組的長度length,也傳入c++,?
令接受的數(shù)組strBuff[length]='\0';即可解決問題
轉(zhuǎn)載于:https://www.cnblogs.com/GoAhead/archive/2012/12/10/2811890.html
總結(jié)
以上是生活随笔為你收集整理的jni java c++ 参数传递问题解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hibernate一级缓存和二级缓存的区
- 下一篇: 【IBM Tivoli Identity