我正在尝试使用Ruby-FFI包装C库。但是,库中的函数名称以大写字母开头。结果,好像ffi试图生成常量,当你尝试从Ruby运行时访问它们时,你会收到错误说
NameError: uninitialized constant (name of function)
有没有办法为函数名设置别名,以便在ruby中可以将它们作为具有小写名称的方法访问它们应该是什么?
答案 0 :(得分:0)
等等,这里似乎显示了一个示例:https://github.com/ffi/ffi/wiki/Windows-Examples
他们在这里做的是:
attach_function :message_box, :MessageBoxW, [ :pointer, :buffer_in, :buffer_in, :int ], :int
所以看来attach_function允许你将别名作为第一个参数传递,然后是通常的参数。试过这个,似乎有效。