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