我正在尝试包装C函数
Color *ImageExtractPalette(Image image, int maxPaletteSize, int *extractCount);
我已经制作了一个原始包装器,但是现在我还想创建一个增强的包装器,以使其具有
的签名。(_Image? integer? . -> . (listof _Color?))
其中_Image
和_Color
是用define-cstruct
定义的C结构类型。
我已经尝试过此操作(drl
是用define-ffi-definer
定义的):
(drl ImageExtractPalette*
(_fun _Image _int (extract-count : [_ptr o _int]) -> (colors : [_list o _Color extract-count]) -> colors)
#:c-id ImageExtractPalette)
但是我得到一个错误
_fun: got an expression for a custom type that does not use it
at: (colors : (_list o _Color extract-count))
in: (_fun _Image _int (extract-count : (_ptr o _int)) -> (colors : (_list o _Color extract-count)) -> colors)