60件ヒット
[1-60件を表示]
(0.035秒)
ライブラリ
- fiddle (60)
クラス
-
Fiddle
:: Function (12)
モジュール
- Fiddle (24)
キーワード
- BlockCaller (12)
- Closure (12)
-
TYPE
_ VOIDP (12) - new (12)
検索結果
先頭5件
-
Fiddle
:: TYPE _ VOID -> Integer (18201.0) -
C の void を表す定数。
C の void を表す定数。 -
Fiddle
:: TYPE _ VOIDP -> Integer (6200.0) -
C の void* 型を表す定数。
C の void* 型を表す定数。 -
Fiddle
:: Closure (36.0) -
コールバック関数を表すクラスです。
...uire 'fiddle'
include Fiddle # TYPE_* を使うために include する
class Compare < Fiddle::Closure
# qsort の比較関数は 型が int(*)(void*, void*) であるため、
# このメソッドには DL::CPtr オブジェクトが渡される。
# そのポインタが指す......Fiddle::Function.new(libc["qsort"],
[TYPE_VOIDP, TYPE_INT, TYPE_INT, TYPE_VOIDP],
TYPE_VOID)
s = "7x0cba(Uq)"
qs.call(s, s.size, 1, Compare.new(TYPE_INT, [TYPE_VOIDP, TYPE_VOIDP]))
p s # => "()07Uabcqx"
Class.new を使うことで、......を使うために include する
compare = Class.new(Fiddle::Closure){
def call(x, y)
x.to_s(1) <=> y
end
}.new(TYPE_INT, [TYPE_VOIDP, TYPE_VOIDP])
単に Ruby のブロックを C の(コールバック)関数に変換したい場合は
Fiddle::Closure::BlockCaller を使うほ... -
Fiddle
:: Closure :: BlockCaller (30.0) -
Ruby のブロックをラップしたコールバック関数を表すクラスです。
...libc["qsort"],
[TYPE_VOIDP, TYPE_INT, TYPE_INT, TYPE_VOIDP],
TYPE_VOID)
compare = Fiddle::Closure::BlockCaller.new(TYPE_INT, [TYPE_VOIDP, TYPE_VOIDP]){|x, y|
# qsort の比較関数は 型が int(*)(void*, void*) であるため、
#... -
Fiddle
:: Function . new(ptr , args , ret _ type , abi=Fiddle :: Function :: DEFAULT , name: nil) -> Fiddle :: Function (24.0) -
ptr (関数ポインタ)から Fiddle::Function オブジェクトを 生成します。
...iddle::Pointer を渡します。
args、ret_type で関数の引数と返り値の型を指定します。これには以下の
定数が利用できます。「-TYPE_INT」 のように符号を反転させると unsigned を
意味します。
* Fiddle::TYPE_VOID
* Fiddle::TYPE_VOIDP
* Fid......dle::TYPE_CHAR
* Fiddle::TYPE_SHORT
* Fiddle::TYPE_INT
* Fiddle::TYPE_LONG
* Fiddle::TYPE_LONG_LONG
* Fiddle::TYPE_FLOAT
* Fiddle::TYPE_DOUBLE
* Fiddle::TYPE_INTPTR_T
* Fiddle::TYPE_UINTPTR_T
* Fiddle::TYPE_PTRDIFF_T
* Fiddle::TYPE_SIZE_T
* Fiddle::TYPE_SSIZE_T
abi で呼出......Function.new(h.sym("strlen"), [Fiddle::TYPE_VOIDP],
Fiddle::TYPE_INT, name: "strlen")
p func.ptr == h.sym("strlen") # => true
p func.call("abc") # => 3
p func.name # => "strlen"
@param ptr C の関数を指す Fiddle::Pointer オブジェクトもしくは...