Joe, thanks. Your suggestion seems to work. However JGets seems to not exist.How do I then get the variable, once assigned? I tried to search through the .so/.dll for "get" functions:
nm -g libj.so | grep Get Although jdll.ijs seems to contain jget, when I tried to call this (in Python) I get " undefined symbol: jget" (with variations on upper and lower cases) and couldn't find a function that seemed to get the variables.Also I'm having trouble finding libj.dll > Date: Fri, 18 Jul 2014 10:36:06 -0400 > From: [email protected] > To: [email protected] > Subject: Re: [Jprogramming] Calling j.dll from python > > JInit() returns the instance that you need to invoke against > > see addons/general/misc/jdll.ijs > > jdo is defined as: > > jdo=: 3 : 0 > > (libj,' JDo i x *c') cd pJ, boxopen y > > ) > > > so I suspect you need to be passing that pointer address with python too... > > > jt = j.JInit() > > j.JDo(jt, "x =: 3") > > > [untested] > > > > > > > On Fri, Jul 18, 2014 at 10:33 AM, Thomas Costigliola <[email protected]> > wrote: > > > Bill, Jon, sorry if that suggestion did not apply. I remembered it was a > > common pitfall when calling from C. Maybe that is not the case now. > > > > > > On Fri, Jul 18, 2014 at 10:29 AM, Jon Hough <[email protected]> wrote: > > > > > My previous email was regarding Windows (7 with J801) > > > I just tried to do the same in Ubuntu (J801) > > > cdll.LoadLibrary("j801/bin/libj.so") > > > j = CDLL("j801/bin/libj.so")>>> j.JInit()158010848 > > > No idea what the above output means. Is that the pointer address of > > > something? > > > And then: > > > >>> j.JDo("x =: 3")Segmentation fault (core dumped) > > > And Python (2.7) crashed. > > > > > > > Date: Fri, 18 Jul 2014 22:09:28 +0800 > > > > From: [email protected] > > > > To: [email protected] > > > > Subject: Re: [Jprogramming] Calling j.dll from python > > > > > > > > From which resource did you learn that(not python)? It should be very > > out > > > > dated. > > > > On Jul 18, 2014 6:00 PM, "Jon Hough" <[email protected]> wrote: > > > > > > > > > I am trying to call jdll.JDo from python but I get the error message, > > > > > access violation. > > > > > > > > > > Here is my python. > > > > > > > > > > Cdll.LoadLibrary(path to j.dll) > > > > > J =CDLL(path to j.dll) > > > > > > > > > > J.JDo("x =: i. 3") > > > > > > > > > > This gives am error. In fact any string gives the error. > > > > > > > > > > J.JGet doesnt seem to give errors, but since I cannot set any j > > > variables, > > > > > it is not easy to test. > > > > > > > > > > > > ---------------------------------------------------------------------- > > > > > For information about J forums see > > http://www.jsoftware.com/forums.htm > > > > > > > > > ---------------------------------------------------------------------- > > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
