I was having trouble running the example in the documents:

(foreign-funcall-pointer (foreign-symbol-pointer "abs")

                                 :int -42 :int)

I got
SIMPLE-ERROR: Unknown CFFI type: 4.

I was going crazy, until i searched google code and found this working example:
http://www.google.com/codesearch/p?hl=en#wVc2UuwHR3k/trunk/tree/resolve.lisp&q=foreign-funcall-pointer%20lang:lisp

Retrying with an added "()" before the arg list works.

foreign-funcall-pointer (foreign-symbol-pointer "abs")

       ()                          :int -42 :int)

works !

This allows one to call a defcallback function from lisp

making the following unnecessary in the documentation of defcallback
"The macro defcallback defines a Lisp function the can be called
from C (but not from Lisp)."
because the following works:

(defcallback fx
    :int
    ((x :int))
  (progn (print "test") 3))


(foreign-funcall-pointer (callback fx)
() :int 4 :int)

Thanks for the cffi,
Naveen
_______________________________________________
cffi-devel mailing list
cffi-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel

Reply via email to