132件ヒット
[1-100件を表示]
(0.016秒)
種類
- 特異メソッド (77)
- クラス (22)
- インスタンスメソッド (22)
- 定数 (11)
クラス
-
Fiddle
:: Closure (11) -
Fiddle
:: Closure :: BlockCaller (22) -
Fiddle
:: Function (33) -
Fiddle
:: Handle (22)
モジュール
- Fiddle (22)
キーワード
- BlockCaller (11)
- Closure (11)
- STDCALL (11)
-
last
_ error (11) - new (55)
-
win32
_ last _ error (11)
検索結果
先頭5件
-
Fiddle
:: Closure :: BlockCaller # call(*args) -> object (32103.0) -
wrap しているブロックを呼び出します。
wrap しているブロックを呼び出します。
そのブロックの返り値がこのメソッドの返り値となります。
@param args 引数 -
Fiddle
:: Function # call(*args) -> Integer|DL :: CPtr|nil (29133.0) -
関数を呼び出します。
...関数を呼び出します。
Fiddle::Function.new で指定した引数と返り値の型に基いて
Ruby のオブジェクトを適切に C のデータに変換して C の関数を呼び出し、
その返り値を Ruby のオブジェクトに変換して返します。
引数の変換は......以下の通りです。
: void* (つまり任意のポインタ型)
nil ならば C の NULL に変換されます
Fiddle::Pointer は保持している C ポインタに変換されます。
文字列であればその先頭ポインタになります。
IO オブジェクトであれば......渡されます。
整数であればそれがアドレスとみなされます。
to_ptr を持っているならば、それを呼びだし Fiddle::Pointer に
変換したものを用います。
to_i を持っているならば、それを呼びだし結果の整数を
アドレスと... -
Fiddle
:: Function :: STDCALL -> Integer (17108.0) -
Windows の stdcall 呼出規約を表します。
...Windows の stdcall 呼出規約を表します。
stdcall 呼出規約を持つ環境でのみ定義されます。
@see Fiddle::Function.new... -
Fiddle
:: Closure :: BlockCaller (17038.0) -
Ruby のブロックをラップしたコールバック関数を表すクラスです。
...す。
require 'fiddle'
include Fiddle
libc = Fiddle.dlopen("/lib/libc.so.6")
qs = Fiddle::Function.new(libc["qsort"],
[TYPE_VOIDP, TYPE_INT, TYPE_INT, TYPE_VOIDP],
TYPE_VOID)
compare = Fiddle::Closure::BlockCaller.new(TYPE_INT, [TY......は DL::CPtr オブジェクトが渡される。
# そのポインタが指す先は比較している文字なので、
# DL::CPtr#to_s で1文字の文字列に変換している
x.to_s(1) <=> y.to_s(1)
}
s = "7x0cba(Uq)"
qs.call(s, s.size, 1, compare)
p s # => "()07Uabcqx"... -
Fiddle
. last _ error -> Integer (17034.0) -
最後に Fiddle::Function#call で C の関数を呼び出した 結果設定された errno を返します。
...最後に Fiddle::Function#call で C の関数を呼び出した
結果設定された errno を返します。
この値はスレッドローカルです。... -
Fiddle
. win32 _ last _ error -> Integer (17034.0) -
最後に Fiddle::Function#call で C の関数を呼び出した 結果設定された errno を返します。
...最後に Fiddle::Function#call で C の関数を呼び出した
結果設定された errno を返します。
このメソッドは Windows 環境でのみ定義されています。
この値はスレッドローカルです。... -
Fiddle
:: Closure :: BlockCaller . new(ret , args , abi=Fiddle :: Function :: DEFAULT) { . . . } -> Fiddle :: Closure :: BlockCaller (14326.0) -
Ruby のブロックを呼び出す Fiddle::Closure オブジェクトを返します。
...Ruby のブロックを呼び出す Fiddle::Closure オブジェクトを返します。
args、ret で関数の引数と返り値の型を指定します。
指定は Fiddle::Function.new と同様なので、そちら
を参照してください。
@param ret 返り値の型
@param args 引数... -
Fiddle
:: Function . new(ptr , args , ret _ type , abi=Fiddle :: Function :: DEFAULT , name: nil) -> Fiddle :: Function (11376.0) -
ptr (関数ポインタ)から Fiddle::Function オブジェクトを 生成します。
...ptr (関数ポインタ)から Fiddle::Function オブジェクトを
生成します。
ptr には Fiddle::Handle から Fiddle::Handle#sym などで取りだした
関数ポインタ(を表す整数)、もしくは関数を指している
Fiddle::Pointer を渡します。
args、ret_type で関......* 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
* Fiddle::TYPE_INTPTR_T
* Fiddle::TYPE_UINTPTR_T
* Fiddle::TYPE_PTRDIFF_T
* Fiddle::T......E_SIZE_T
* Fiddle::TYPE_SSIZE_T
abi で呼出規約を指定します。
* Fiddle::Function::DEFAULT
* Fiddle::Function::STDCALL
のどちらかを指定します。
require 'fiddle'
h = Fiddle::Handle.new('libc.so.6')
func = Fiddle::Function.new(h.sym("strlen"), [Fiddle::TYPE_VOID... -
Fiddle
:: Handle . new(lib , flags=Fiddle :: Handle :: RTLD _ LAZY|Fiddle :: Handle :: RTLD _ GLOBAL) -> Fiddle :: Handle (11368.0) -
ライブラリ lib をオープンし、Handle オブジェクトとして返します。
...flags で dlopen(3) の第2引数として渡すフラグを指定できます。
Fiddle::Handle::RTLD_LAZY、Fiddle::Handle::RTLD_NOW
のどちらか一方を指定する必要があり、
またそれに Fiddle::Handle::RTLD_GLOBAL と OR を取ることができます。
詳しい意味は man......lags フラグ
@raise Fiddle::DLError ライブラリのオープンに失敗した場合に発生します
例:
require 'fiddle'
h = Fiddle::Handle.new('libc.so.6')
i = h.sym('strlen')
func = Fiddle::Function.new(i, [Fiddle::TYPE_VOIDP], Fiddle::TYPE_INT)
p func.call("uxyz") # => 4... -
Fiddle
:: Handle . new(lib , flags=Fiddle :: Handle :: RTLD _ LAZY|Fiddle :: Handle :: RTLD _ GLOBAL) {|handle| . . . } -> Fiddle :: Handle (11368.0) -
ライブラリ lib をオープンし、Handle オブジェクトとして返します。
...flags で dlopen(3) の第2引数として渡すフラグを指定できます。
Fiddle::Handle::RTLD_LAZY、Fiddle::Handle::RTLD_NOW
のどちらか一方を指定する必要があり、
またそれに Fiddle::Handle::RTLD_GLOBAL と OR を取ることができます。
詳しい意味は man......lags フラグ
@raise Fiddle::DLError ライブラリのオープンに失敗した場合に発生します
例:
require 'fiddle'
h = Fiddle::Handle.new('libc.so.6')
i = h.sym('strlen')
func = Fiddle::Function.new(i, [Fiddle::TYPE_VOIDP], Fiddle::TYPE_INT)
p func.call("uxyz") # => 4...