Storing C++ data in an instance field using CNI?

Stanley Brown stanley.brown@zimmer.com
Sat May 29 17:57:00 GMT 2004


David Daney wrote:
> Stanley Brown wrote:
>>> I played a little bit with RawData. Soon my Java code became very 
>> GCJ dependent. I eventually switched back to JNI (which GCJ handles 
>> just fine) storing pointers in long instance variables and NIO 
>> buffers. To be fair this was mainly because I ran into complications 
>> on the Win32 port where (1) I could not mix C++ and GCJ and (2) 
>> creating instances of Calendar overloaded the memory.
>>>> Could someone please explain the advantage of using RawData over the 
>> methods I employed?
>>> CNI has lower overhead than JNI.
>> If you use RawData, your code will continue to work when ported to 
> architectures with 128bit pointers.
>> David Daney.
>Bothner wrote some interesting stuff some time back on Linux Journal 
about CNI. After reading it I was "thats the way to go" for 
java-2-native programming. After much JNI and CNI coding Im thinking 
both will leave anyone longing for something like how .NET handles it. 
Sure, being able to use Java classes like C++ classes while in C++ code 
is nice but what would be really cool is to instantiate and control C++ 
classes from within Java like they were Java classes. I know: thats 
crazy talk!
A 128b pointer is a bit fantastic to me. 64-bit is just starting to 
become a reality for most people. Java probably needs a native integral 
type. Saying an int is always 32 bits no matter what the platform is an 
advantage and disadvantage at the same time. Perhaps "long long" for 
128 bits? :)


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /