Muszę przekazać (bezpośrednio) ByteBuffer
do natywnych funkcji, które będą odczytywać/zapisywać z/do bufora. Gdy te operacje zostaną zakończone, chciałbym uzyskać dostęp do ByteBuffer
z kodu Java przy użyciu zwykłych funkcji; w szczególności, limit()
i position()
powinny odzwierciedlać bieżący stan bufora.Manipulacja ByteBuffer z JNI
Od JNI użyje GetDirectBufferAddress()
bezpośredni dostęp bufor podstawowy, jestem przy założeniu, powinienem zadzwonić flip()
/limit()
/position()
po Skończyłem odczytu/zapisu. Jednak nie byłem w stanie wykonać tej pracy. Na przykład po przeczytaniu kilku bajtów w buforze z C i ustawieniu odpowiednio jego limitu i pozycji, nie mogę zapytać tych bajtów z Javy; Idea Javy dotycząca limitu bufora i pozycji nie jest zgodna z tym, co zrobiłem w kodzie C.
Czy ktoś może wskazać mi na to przykład? Z góry dziękuję.
Powinien działać, to cały pomysł. Jakie pozycje i wartości graniczne ustawiasz i jak oraz jakie wartości dla nich widzisz w Javie? – EJP