2011-11-03 393 views
7

如何获取指向Java ByteBuffer内部数组的指针? PS:我这样做是为了共享Java和C++所使用的内存。通过JNI获取Java ByteBuffer的指针

+2

你能说清楚你在问什么吗?如果你需要返回2个东西,然后返回一个结构。 – Pubby

+0

'm_buffer'已经指向分配的内存吗?如果是这样,你为什么说'新'? –

+0

我重写了这个问题 –

回答

11
void * data = env->GetDirectBufferAddress(obj); 

ByteBuffer必须是直接工作的。

+0

这正是我所需要的。谢谢! –

+0

我想'Byte * data = env-> GetDirectBufferAddress(obj);'会更具描述性。 – Patrick

0

如果你想内m_buffer返回的第一个元素的地址,那么你可以这样做:

return m_buffer;

..或者:

return &m_buffer[0]