如何在RubyFFI中将结构指定为函数的返回值?
我必须加载几个从库本身返回结构的函数。
attach_function 'fn_name', [], # ... What do I put here?
RubyFFI的Wiki页面似乎已经过时了,所以我在这里有点迷失。
如何创建FFI::Struct
,如何将其指定为本机函数的返回类型?
class SOME_STRUCT < FFI::Struct layout :a, :float, :b, :float end
然后
attach_function 'fn_name', [], SOME_STRUCT
如果是堆栈分配的结构:
typedef struct { float a, b; } SOME_STRUCT;
你应该用这个:
attach_function 'fn_name', [], SOME_STRUCT.by_value