4

我必须加载几个从库本身返回结构的函数。

attach_function 'fn_name', [], # ... What do I put here?

RubyFFI 的 Wiki 页面似乎已经过时,所以我在这里有点迷茫。

如何创建FFI::Struct,以及如何将其指定为本机函数的返回类型?

4

1 回答 1

8
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
于 2011-03-21T08:10:29.990 回答