我正在尝试使用 Ruby-FFI 包装 C 库。但是,库中的函数名称以大写字母开头。因此,看起来 ffi 正在尝试生成常量,当您尝试在运行时从 Ruby 访问它们时,您会收到一条错误消息
NameError: uninitialized constant (name of function)
有没有一种方法可以为函数名称添加别名,以便在 ruby 中您可以将它们作为具有小写名称的方法来访问,因为它们应该是这样的?
最佳答案
等等,这里好像有一个例子:https://github.com/ffi/ffi/wiki/Windows-Examples
他们在这里所做的事情如下:
attach_function :message_box, :MessageBoxW, [ :pointer, :buffer_in, :buffer_in, :int ], :int
因此,attach_function 似乎允许您将别名作为第一个参数传递,然后是常用参数。尝试了一下,似乎有效。
关于c - Ruby-FFI 在包装以大写字母开头的函数时生成常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8955805/