Ruby-FFI在包装以大写字母开头的函数时产生常量?

时间:2012-01-21 19:04:02

标签: c ruby ffi

我正在尝试使用Ruby-FFI包装C库。但是,库中的函数名称以大写字母开头。结果,好像ffi试图生成常量,当你尝试从Ruby运行时访问它们时,你会收到错误说

NameError: uninitialized constant (name of function)

有没有办法为函数名设置别名,以便在ruby中可以将它们作为具有小写名称的方法访问它们应该是什么?

1 个答案:

答案 0 :(得分:0)

等等,这里似乎显示了一个示例:https://github.com/ffi/ffi/wiki/Windows-Examples

他们在这里做的是:

attach_function :message_box, :MessageBoxW, [ :pointer, :buffer_in, :buffer_in, :int ], :int

所以看来attach_function允许你将别名作为第一个参数传递,然后是通常的参数。试过这个,似乎有效。