2012-01-21 18 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允許你通過別名作爲第一個參數,然後是通常的參數。試過這個,它似乎有效。

相關問題