Thanks, 
My test script, so far, is

from ctypes import *

cdll.LoadLibrary("j801/bin/libj.so")
j = CDLL("j801/bin/libj.so")
jt = j.JInit()

j.JDo(jt, "a =: 1")

a =j.JGetM(  "a")

print a

This returns 4, even though I set a to be 1. I'm assuming 4 is the number of 
bytes returned (i.e. an int)??(By the way, if I do j.JGetM(jt, "a") I get a seg 
fault.Regarding jdll.ijs, unfortunately my J-skills are not powerful enough yet 
to make much sense of it:
jget=: 3 : 0cmd=. libj,' JGetM i x *c *x *x *x *x''e p n t r s d'=. cmd cd 
pJ,(,y);4#<,0if. e do.  smoutput 'error code: ',":e  return.end.(t,r,s) jfix d)
In particular
 JGetM i x *c *x *x *x *x
is confusing.
> Date: Fri, 18 Jul 2014 10:53:44 -0400
> From: [email protected]
> To: [email protected]
> Subject: Re: [Jprogramming] Calling j.dll from python
> 
> JGetM is what you need, but I strongly suggest reviewing
> http://jsoftware.com/wsvn/addons/trunk/general/misc/jdll.ijs (or your local
> version) to get a better understanding of how things work
> 
> This part addresses your question:
> 
> jget=: 3 : 0
> cmd=. libj,' JGetM i x *c *x *x *x *x'
> 'e p n t r s d'=. cmd cd pJ,(,y);4#<,0
> if. e do.
>   smoutput 'error code: ',":e
>   return.
> end.
> (t,r,s) jfix d
> )
> 
> 
> On Fri, Jul 18, 2014 at 10:51 AM, Jon Hough <[email protected]> wrote:
> 
> > Please ignore the last sentence from my previous email. Copied and pasted
> > by accident.
> >
> > > From: [email protected]
> > > To: [email protected]
> > > Date: Fri, 18 Jul 2014 15:50:41 +0100
> > > Subject: Re: [Jprogramming] Calling j.dll from python
> > >
> > > 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
> >
> > ----------------------------------------------------------------------
> > 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

Reply via email to