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


Odpovedet emailem