An instance of a FLI pointer.
An integer. If index is supplied,
dereference assumes that pointer points to one element in an array of object, and returns the element at the index position in the array.
The foreign object type that pointer points to. If the specified type is different to the actual type,
dereference returns the value of the object in the format of type where possible.
dereference accesses and returns the value of the FLI object pointed to by pointer, unless pointer points to an aggregate type. In the case of aggregates, the return value is specified by using the copy-foreign-object option.
An error is signaled if pointer is a null pointer. You can use null-pointer-p to detect null pointers.
64-bit integer types such as
are now supported for type in
dereference in 32-bit LispWorks. In 32-bit LispWorks 6.1 and earlier versions, these types could only be used by define-foreign-function.
In the following example a
LONG type is defined and an instance, pointed to by
point, with a specified initial value of 10 is created with memory allocated using allocate-foreign-object. The
dereference function is then used to get the value that
point points to.
(fli:define-c-typedef LONG :long)
(setf (fli:dereference point) 20)
(fli:define-c-typedef BOOL (:boolean :int))
(setq point2 (fli:allocate-foreign-object :type 'BOOL))
(fli:dereference point2 :type :char)
LispWorks Foreign Language Interface User Guide and Reference Manual - 16 Feb 2015