[英]Passing NewDirectByteBuffer from C++ to Java (JNI)
我有這個C ++代碼:
char *buffer = new char[100];
/*
* ...populate this char array with some data...
*/
jobject jbuffer = env->NewDirectByteBuffer(buffer, 100);
之后,我想將我在C ++中創建的DirectByteBuffer傳遞給Java。
我有兩個問題:
env->NewDirectByteBuffer(buffer, 100)
清除char數組緩沖區中的數據嗎? 這是正確的方法嗎? jobject jbuffer = env->NewDirectByteBuffer(buffer, 100);
創建對Java對象的本地引用 。 當顯式釋放時,或者使用PushLocalFrame()/ PopLocalFrame()時 ,或者在分配了此本地引用的JNI函數返回時,它將被標記為未使用。
之后,GC將決定按照與常規Java對象相同的規則刪除緩沖區。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.