我有一个(相当昂贵的)数量:
extern TCODLIB_API const TCOD_color_t TCOD_red;
extern TCODLIB_API const TCOD_color_t TCOD_flame;
extern TCODLIB_API const TCOD_color_t TCOD_orange;
extern TCODLIB_API const TCOD_color_t TCOD_amber;
extern TCODLIB_API const TCOD_color_t TCOD_yellow;
extern TCODLIB_API const TCOD_color_t TCOD_lime;
我如何才能优雅地获取Ruby侧的值?感觉应该有一种attach_const等价于下面使用的attach_function,您可以参考以下内容:
module TCOD
extend FFI::Library
ffi_lib File.join(APP_ROOT, "libtcod-1.5.1/libtcod.so")
attach_function :color_RGB, 'TCOD_color_RGB', [:uchar, :uchar, :uchar], Color.val
end
如果可能的话,我不希望重新定义从lightest_sepia到desaturated_chartreuse的所有内容...
#define
常量有一个解决方案;请参见FFI::ConstGenerator
。 - womble