Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

JNI mapping pointer to C++ structures to the java side (Really

 
Shailaja Murty
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
> Problem in detail:
> I have a Struct* to be passed from C++ to java.
> I have got a C++ library that uses a structure, say myStruct*
> Let us say there are 2 C++ functions with the following signatures:
> struct myStruct*structInit();
> void doSomething(myStruct*);
> I want to write a java program that calls structInit(), gets myStruct*and
> passes this struct*to doSomething. How do I go about it?
> I tried making it global in the JNI code and instead of passing it back to
> java, tried calling functions that modify/access Struct* in JNI code
> itself.... using functions like
> struct myStruct* somevar;
> void structInit() { ...}
> void doSomething() {..}
> Though this works in a java application. It does not work on the
> browser(using JSP and javaBeans)...when multiple requests are being
> served.
> The path the code follows is
> HTML file takes some input and makes a call to JSP which stores the input
> data in a java bean and makes JNI calls to C++ code above and displays the
> data in the browser. While debugging the entire code, I found the problem
> lies in the struct * pointer variable being accessed globally. The system
> crashes saying it references a wrong memory location.
> I would really appreciate if you could suggest me with some
> solution...some tips or some sample programs... I have been going through
> lot of JNI documentation but that does not seem to help me much.
> Email address for communication: kshailaja@angelfire.com
> <mailto:kshailaja@angelfire.com>
> -Shailaja
Reply Reply All Forward Delete Previous Next Close

------------------
 
Maky Chopra
Ranch Hand
Posts: 149
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Shailaja
The javaranch has a naming policy and your login name does not meet the requirement.
Please signup again with a proper name.
Thanks..
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic