new(ptr, args, ret_type, abi=Fiddle::Function::DEFAULT) -> Fiddle::Function[permalink][rdoc]-
ptr (関数ポインタを表す整数)から Fiddle::Function オブジェクトを生成します。
ptr には DL::Handle から DL::Handle#ptr で取りだした関数ポインタ(を表す整数)を渡します。
args、ret_type で関数の引数と返り値の型を指定します。これには以下の定数が利用できます。「-TYPE_INT」 のように符号を反転させると unsigned を意味します。
- Fiddle::TYPE_VOID
- Fiddle::TYPE_VOIDP
- Fiddle::TYPE_CHAR
- Fiddle::TYPE_SHORT
- Fiddle::TYPE_INT
- Fiddle::TYPE_LONG
- Fiddle::TYPE_LONG_LONG
- Fiddle::TYPE_FLOAT
- Fiddle::TYPE_DOUBLE
abi で呼出規約を指定します。
のどちらかを指定します。
require 'dl' require 'fiddle' include Fiddle libc = DL.dlopen("/lib/libc.so.6") f = Fiddle::Function.new(libc["strcpy"], [TYPE_VOIDP, TYPE_VOIDP], TYPE_VOIDP)- [PARAM] ptr:
- C の関数を指す DL::Handle オブジェクト
- [PARAM] args:
- 引数の型を表す配列
- [PARAM] ret_type:
- 返り値の型
- [PARAM] abi:
- 呼出規約