Joeish W joeish80829@yahoo.com writes:
[SKIPPED CODE]
When I run (defparameter a (%scalar 1d0 2d0 3d0 4d0)) and (mem-aref a :double) I still get:
The value #<CV-SCALAR {10046BC833}> is not of type SB-SYS:SYSTEM-AREA-POINTER.
but when I run (mem-aref (c-pointer a) :double) it works.
What do I have to change in my types so I can mem-aref "A" normally, like this
(mem-aref a :double)...Any help is much appreciated:)
Did you read the tutorial and the CFFI manual?
To be short, you should only use the mem-aref in lowlevel code and in that case you are better of using the (mem-aref (c-pointer ...)) construct.
However if you want to expose the members of the C++ class instance you should lookup the defcstruct documentation in the CFFI manual.
Wim Oudshoorn