Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > dl/importライブラリ > DL::Importableモジュール

module DL::Importable

クラスの継承リスト: DL::Importable

要約

DL モジュールの各クラスの便利なラッパーです。

Importable モジュールは、モジュールから extend を呼んで使います。include ではありません。 クラスやオブジェクトから extend を呼んで使うことはできません。

require "dl/import"

module M
  extend DL::Importable
  dlload "libc.so.6"
  extern "int strlen(char*)"
end

p M.strlen("abc") #=> 3

インスタンスメソッド

定義 説明
self[func] -> nil | DL::Symbol | DL::PtrData

DL::Importable#externDL::Importable#import または DL::Importable#callback によって定義した、 C レベルの関数や変数名 func に対応する DL::Symbol オブジェクトを返します。

_args_ -> [object]

直前に呼んだダイナミックライブラリの関数の引数の配列を返します。

_retval_ -> object

直前に呼んだダイナミックライブラリの関数の返り値を返します。

callback(proto) -> DL::Symbol

与えられたプロトタイプにしたがって、自身のインスタンスメソッドを C のコールバック関数に変換し、DL::Symbol として返します。

dlload(*lib) -> ()
dllink(*lib) -> ()

DL.#dlopen を用いてライブラリをロードし、extend した モジュール内でそのライブラリで定義されている参照可能なシンボルを取得できるよ うにします。

extern(proto) -> DL::Symbol

与えられたプロトタイプにしたがって、ダイナミックライブラリ内のシンボルを検索し、 自身の特異メソッドとして、定義します。

import(sym, rettype, argtypes = nil) -> DL::Symbol

ダイナミックライブラリ内のシンボルを検索し、 自身の特異メソッドとして、定義します。

symbol(sym) -> DL::PtrData

ロードしたダイナミックライブラリ内のシンボルを検索し シンボルへのポインタを DL::PtrData として返します。

symbol(func, typespec) -> DL::Symbol

ロードしたダイナミックライブラリ内の関数を検索し 名前が func の関数を DL::Symbol として返します。

typealias(newtype, oldtype) -> ()

newtype 型を oldtype 型のエイリアスとして定義する。 newtype で与えた型は extern や callback メソッド のプロトタイプを与えるときに利用します。

定数

定義 説明
LIB_MAP

ロードされたライブラリを保持するHashオブジェクトです。

追加されるメソッド

定義 説明 ライブラリ
define_struct(contents)
struct(contents)

構造体を定義します。 contentsについては DL::Importable::Struct.new を参照せよ。

dl/struct
define_union(contents)
union(contents)

共用体を定義します。 contents については上記 define_struct と同様です。

dl/struct