33件ヒット
[1-33件を表示]
(0.127秒)
検索結果
-
Fiddle
. # dlunwrap(addr) -> object (24207.0) -
指定されたアドレスの Ruby オブジェクトを返します。
...されたアドレスの Ruby オブジェクトを返します。
@param addr Fiddle.#dlwrap が返した Ruby オブジェクトのアドレス(整数)を指定します。
例:
require 'fiddle'
s = 'abc'
p addr = Fiddle.dlwrap(s) #=> 136122440
p Fiddle.dlunwrap(addr) #=> "abc"... -
Fiddle
. # dlwrap(obj) -> Integer (6106.0) -
指定されたオブジェクト obj のアドレスを表す整数を返します。
...指定されたオブジェクト obj のアドレスを表す整数を返します。
@param obj Ruby のオブジェクトを指定します。
例:
require 'fiddle'
s = 'abc'
p addr = Fiddle.dlwrap(s) #=> 136122440
p Fiddle.dlunwrap(addr) #=> "abc"... -
fiddle
/ import (6018.0) -
fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。
...fiddle/import ライブラリを使います。
主な使い方は fiddle も参照してください。
=== 高度な使用法
==== ○○の配列を関数に渡したい
例えば与えられた長さ len の double の配列の和を計算する関数
double sum(double *arry, int len);......があったとします。これを呼び出したい場合は以下のように Array#pack を使用します。
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload './libsum.so'
extern 'double sum(double*, int)'
end
p M.sum([2.0, 3.0, 4.0].pack('d*'), 3) #=> 9.0
ま......の qsort を使って Ruby の Time の配列をソートするには以下のようにします。
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "libc.so.6"
QsortCallback = bind("void *qsort_callback(void*, void*)"){|a, b|
a0 = Fiddle.dlunwrap(a.ptr.to_i)...