Ruby-FFI создает константы при переносе функций, начинающихся с заглавной буквы? - PullRequest
0 голосов
/ 21 января 2012

Я пытаюсь обернуть библиотеку C Ruby-FFI.Однако имена функций из библиотеки начинаются с заглавных букв.В результате создается впечатление, что ffi пытается сгенерировать константы, и когда вы пытаетесь получить к ним доступ во время выполнения из Ruby, вы получаете сообщение об ошибке:

NameError: uninitialized constant (name of function)

Есть ли способ псевдонима имен функций, чтобыв ruby ​​вы можете обращаться к ним как к методам с именами в нижнем регистре, какими они должны быть?

1 Ответ

0 голосов
/ 21 января 2012

Подождите, кажется, что здесь показан пример: https://github.com/ffi/ffi/wiki/Windows-Examples

Здесь они делают следующее:

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

Так что, похоже, attach_function позволяет вам передатьпсевдоним в качестве первого параметра, после которого следуют обычные параметры.Пробовал это, и кажется, что это работает.

...