るりまサーチ

最速Rubyリファレンスマニュアル検索!
33件ヒット [1-33件を表示] (0.089秒)
トップページ > 種類:ライブラリ[x] > クエリ:Fiddle::Importer[x]

別のキーワード

  1. fiddle new
  2. fiddle []
  3. fiddle to_i
  4. fiddle free
  5. fiddle malloc

キーワード

検索結果

fiddle (49.0)

*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。

...mport ライブラリを require して
Fiddle::Importer
モジュールを使用します。
dl と基本的な使いかたは良く似ています。
Fiddle モジュール自体はプリミティブな機能しか提供していません。
Fiddle::Importer
モジュールは以下のように...
...ユーザが定義した
モジュールを拡張する形で使います。

require "fiddle/import"
module M
extend Fiddle::Importer
end

以後、このモジュールで dlload や extern などのメソッドが使用できるようになります。
以下のように dlload を使...
...数に対して extern メソッドを呼んで
ラッパーメソッドを定義します。

require "fiddle/import"
module M
extend Fiddle::Importer
dlload "libc.so.6","libm.so.6"
extern "int strlen(char*)"
end
# Note that we should not include the module M from some reason....
...使い方

通常は fiddle/import ライブラリを require して
Fiddle::Importer
モジュールを使用します。
Fiddle モジュール自体はプリミティブな機能しか提供していません。
Fiddle::Importer
モジュールは以下のようにユーザが定義した
モジ...
...ュールを拡張する形で使います。

require "fiddle/import"
module M
extend Fiddle::Importer
end

以後、このモジュールで dlload や extern などのメソッドが使用できるようになります。
以下のように dlload を使ってライブラリをロード...

fiddle/import (31.0)

fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。

...ます。これを呼び出したい場合は以下のように 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

また与えられた...
...たとします。これを呼び出すにも以下のように Array#pack を使用します。

require 'fiddle/import'
module M
extend Fiddle::Importer
dlload './libstrfirst.so'
extern 'void first_char(char **, char *, int)'
end
buf = '111'
M.first_char(['Abc', 'Def', 'Ghi'].pack('p...
...t を使って 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)
b0...

fiddle/types (31.0)

C の型の別名を定義するライブラリです。

...Types を Module#include する
ことで、Fiddle::Importer#extern や Fiddle::Importer#struct で
利用できる型が増えます。内部で Fiddle::Importer#typealias を
呼び出しています。

実装の問題があるため、 Fiddle::Importer#dlload を呼びだしてから
include し...
...てください。


require 'fiddle/import'
require 'fiddle/types'

module M
extend Fiddle::Importer
dlload "libc.so.6" # include の前に dlload を呼ぶ
include Fiddle::BasicTypes
end

# uint は Fiddle::BasicTypes によって定義された型で、unsigned int...