Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > dlライブラリ > DLモジュール
クラスの継承リスト: DL
UNIX の dlopen(3) や Windows の LoadLibrary() などのダイナミックリンカへの低レベルな インターフェースを提供するモジュールです。
モジュール DL は 3 つのクラスから成っています。
ダイナミックライブラリの関数のラッパークラスです。
C のポインタのようなメモリブロックを表すクラスです。
オープンされたダイナミックライブラリを表すクラスです。
プロトタイプは以下の型修飾子から成ります。プロトタイプの最初の要素は戻り値 の型を意味します。残りの要素は各引数の型を意味します。
文字 (char)
文字を指すポインタ (char *)
short 整数 (short)
short 整数を指すポインタ (short *)
整数 (char, short, int)
整数を指すポインタ (char *, short *, int *)
long int
long int へのポインタ (long *)
実数 (float)
実数へのポインタ (float *)
実数 (double)
実数へのポインタ(double *)
不変 (immutable) の文字列 (const char *)
変更可能(mutable)な文字列 (char *)
配列 (const type[])
変更可能 (mutable) な配列 (type[])
ポインタ (void *)
変更可能 (mutable) なポインタ (void *)
void 関数 (これはプロトタイプの最初の文字でなければならない)
cbtype は型修飾子 0, C, I, H, L, F, D, S そして P から成ります。 例えば,
DL.callback('IPP'){|ptr1,ptr2| str1 = ptr1.ptr.to_s str2 = ptr2.ptr.to_s str1 <=> str2 }
DL.#callback や DL::Handle#sym で指定した 型指定子に従って Ruby のオブジェクトと C の型は相互に変換されます。
定義 | 説明 | |
---|---|---|
last_error
|
||
win32_last_error
|
定義 | 説明 | |
---|---|---|
callback(type) -> DL::Symbol
|
Cレベルのコールバック関数を定義し、その関数(へのポインタ)を保持した DL::Symbol を返します。 |
|
dlopen(lib) -> DL::Handle
|
ダイナミックライブラリ lib をロードし、 DL::Handle として返します。 |
|
malloc(size) -> DL::PtrData
|
size バイトのメモリ領域を確保し、 その領域を指す DL::PtrData オブジェクトを返します。 |
|
remove_callback(sym) -> nil
|
コールバック関数 sym を DL::FuncTable から削除します。 以後 sym.call を呼ぶことができなくなります。 |
|
sizeof(type) -> Integer
|
型のサイズを返します。 |
|
strdup(str) -> DL::PtrData
|
文字列 str を複製し、その新しい文字列へのポインタ DL::PtrData オブジェクトを返します。 |
定義 | 説明 | |
---|---|---|
ALIGN_DOUBLE
|
||
ALIGN_FLOAT
|
||
ALIGN_INT
|
||
ALIGN_LONG
|
||
ALIGN_SHORT
|
||
ALIGN_VOIDP
|
||
DLSTACK
|
||
FREE
|
free(3) を表す DL::Symbol です。 この定数に新たに DL::Symbol を代入しても、DL::PtrData にデフォルトでセットされる free 関数が変わることはありません。 |
|
FuncTable
|
||
MAX_ARG
|
||
RTLD_GLOBAL
|
||
RTLD_LAZY
|
||
RTLD_NOW
|