JNI中 jbyte 怎么再返回给 ByteBuffer 本帖最后由 rily22 于 2010-04-15 10:24:54 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 jclass ByteBufferClass = env->GetObjectClass(outBuf); jmethodID putByteMethodId = env->GetMethodID(ByteBufferClass,"put","(B)Ljava/nio/ByteBuffer;"); while(index < n) env->CallObjectMethod(outBuf,putByteMethodId,*(Out+index++)); 暂时只能用这个方法解决了 好像直接复制一块内存不行 在Java端ByteBuffer byteBuffer = ByteBuffer.allocateDirect(1000);returnJNI(byteBuffer);而在Native端void returnJNI(JNIEnv* env, jobject thiz, jobject byteBuffer) { jbyte *directBuffer = (*env)->GetDirectBufferAddress(env, byteBuffer); // TODO}如此一來 Java和Native便會共享同一塊記憶體空間 在Native操作後 Java端的值也會隨之改變但用此方法必須注意同步問題! 我在 读取 txt 文件按行 读取 我手动输入一个 回车 这个回车 也被按行读取了 并存入数据库了 服务器压力?? 翻译两课sun网站的java课程。 这样的程序怎么写?谢谢 怎样生成HTML文件?如能提供例子立刻结贴!! 一个基本语法问题 deliver.pc是什么类型的文件? 为什么我的UltraEdit 8.10光标在汉字处定位有问题? 关于java JTextPane 字体改变颜色算法问题 新手求助,代码一些看不懂 菜帖:书本错了,还是java更新版本了?"中国 abc".substring(1,3) 怎么把两个控件组合在一起
jmethodID putByteMethodId = env->GetMethodID(ByteBufferClass,"put","(B)Ljava/nio/ByteBuffer;");
while(index < n)
env->CallObjectMethod(outBuf,putByteMethodId,*(Out+index++)); 暂时只能用这个方法解决了 好像直接复制一块内存不行
ByteBuffer byteBuffer = ByteBuffer.allocateDirect(1000);
returnJNI(byteBuffer);而在Native端
void returnJNI(JNIEnv* env, jobject thiz, jobject byteBuffer) {
jbyte *directBuffer = (*env)->GetDirectBufferAddress(env, byteBuffer);
// TODO
}如此一來 Java和Native便會共享同一塊記憶體空間 在Native操作後 Java端的值也會隨之改變但用此方法必須注意同步問題!