Okay I am having a hell of a time trying to figure out why my native method can change static variables and not instance variables in a java class. Basically I have a native method which returns a new class which holds a long value. Its how purpose in life is to hold one long variable. The class is like this:
Now I have a method inside another class which returns a Window object with its handle;
I wanna do something like below, but it only works if I use a static variable in my Window class.
When CreateWindow is called it returns a new Window object with its handle. The problem is if I make the handle static then the handle gets passed from C to java. If I leave off the static because I would rather not have it static then the handle doesn't get passed to java from the C function. Any help would be greatly appreciated. Should I be so worried about using a static versus an instance variable? Does it make that much of a difference if I leave it as static? Thanks, Frank
Frank, It is definitely worse to access it as a static, why not make an object and access it as an instance ? I recall that I had faced the same problem and I made an object.
Joined: Mar 25, 2000
Yes I finally figured out how to access instance variables from C. I just stuff my C pointer into a Java int and then pass it back to C from Java in subsequent calls and cast it to its type. It works just like I expect it to. I'm well on my way to a Xlib interface for Java. WooHoo!!! If you've ever seen the Aewm window manager then I am converting it to Java using my interface, it should be pretty slick. And best of all the memory foot print has been relatively small. Frank