2012-01-21 21 views
0

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

NameError: uninitialized constant (name of function) 

有没有办法别名功能名称,使红宝石你可以将它们作为小写名称的方法访问,因为它们应该是?

回答

0

等待,似乎一个示例如下所示:https://github.com/ffi/ffi/wiki/Windows-Examples

他们在这里做的是以下几点:

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

如此看来,attach_function允许你通过别名作为第一个参数,然后是通常的参数。试过这个,它似乎有效。

相关问题