Pocitam, ze ten uint32 je preklep a melo jit o signed typ? A nezapomente
na to, ze znamenkovost neni vse, je potreba se zamyslet nad endianitou..
Nejlepsi je pouzivat preddefinovany |jint|.
Doporucil bych mrknout trebas na
http://wp.netscape.com/eng/mozilla/3.0/handbook/plugins/wr2.htm
S pozdravem
Ondra "Satai" Nekola
www.nekola.cz
Zdravím,
Jeden byte je v Javě reprezentován typem byte (překvapivě). Bohužel se jedná o
signed, unsigned typy v Javě nejsou :-(
Pozor na jednu věc: základní datový typ používaný JVM je int, tedy 32bitový
integer. Menší typy (byte, short) se při manipulaci s nimi (především
numerických operacích) převádějí na int a zpět. Z toho důvodu by v takovéto
aplikaci možná bylo lepší ukládat je rovnou v poli uint32 (už kvůli zarovnání).
Viz specifikace jazyka Java a JVM.
Kamil Podlešák
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Jaroslav Hurdes
Sent: Tuesday, September 11, 2007 2:35 PM
To: Konference Java
Subject: JNI a unsigned char * v cpp
Zdravim. Predelavam projekt, ktery je v c++ do javy s
vyuzitim nativnich
knihoven pro nektere casove kriticke operace. V c++ je velmi casto
pouzit typ unsigned char pro reprezentaci BYTU (0-255). Potrebuji
takovato pole prenest z c++ do javy a pote je predat ke
zpacovani jine
nativni knihovne. Do ktereho typu je to vhodne prenaset,
abych i v c++ i
v jave mohl pracovat s temito hodnotami bez nejakych zbytecnych
kopirovani a prevodu. Idealne jen s vyuzitim fci JNI pro
pristum k polim
objektu.
Priklad : nativni knihovna 1 preda jave pole unsigned char * s
obrazovymi daty a v jave je napriklad zobrazim a predam
nativni knihovne
2 k dalsimu zparcovani (opet jako unsigned char *).
Diky Jaroslav Hurdes