java 调用 dll,返回byte[],发现最后几位不对,而且长度多了2,请高手指点,谢谢!
public native static byte[] encrypt(byte[] s1,int len1,byte[] s2,int len2);C++:
jbyteArray jarrRet = env->NewByteArray( len2 );
strncpy( szByte2, outbuf,len2 );
env->SetByteArrayRegion( jarrRet, 0, len2, (jbyte *)szByte2 ); return jarrRet;是不是哪里写错了?
另:
jbyte* pJbyte1 = env->GetByteArrayElements(jb1, 0);
.......
env->ReleaseByteArrayElements(jarrRet, pJbyte1, 0); //是否需要释放?
public native static byte[] encrypt(byte[] s1,int len1,byte[] s2,int len2);C++:
jbyteArray jarrRet = env->NewByteArray( len2 );
strncpy( szByte2, outbuf,len2 );
env->SetByteArrayRegion( jarrRet, 0, len2, (jbyte *)szByte2 ); return jarrRet;是不是哪里写错了?
另:
jbyte* pJbyte1 = env->GetByteArrayElements(jb1, 0);
.......
env->ReleaseByteArrayElements(jarrRet, pJbyte1, 0); //是否需要释放?
少了2,写错了。
问题是dll怎样返回大于7F的字符?应该用什么类型,该怎样写,谢谢!