Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > dlライブラリ > DL::CFuncクラス

class DL::CFunc

クラスの継承リスト: DL::CFunc < Object < Kernel < BasicObject

要約

ダイナミックライブラリの関数を表すクラスです。通常、このクラスを直接使わずに ラッパークラスである DL::Function を使います。

特異メソッド

new(addr, type = DL::TYPE_VOID, name = '', calltype = :cdecl)

指定された addr が指すライブラリ関数を表す CFunc オブジェクトを生成して返します。

[PARAM] addr:
DL::Handle#sym が返した整数を指定します。
[PARAM] type:
関数の返り値の型を DL で定義された定数で指定します。
[PARAM] name:
関数の名前を文字列で指定します。
[PARAM] calltype:
関数の呼出規約を Symbol オブジェクトで指定します。サポートされている 規約は :cdecl と :stdcall です。

[SEE_ALSO] http://ja.wikipedia.org/wiki/%E5%91%BC%E5%87%BA%E8%A6%8F%E7%B4%84

インスタンスメソッド

self[arry] -> Integer | Float | nil
call(arry) -> Integer | Float | nil

[TODO]

自身が表すライブラリ関数を呼び出します。

自身の返り値の型(DL::CFunc#ctype)が double か float である場合は、返り値を Ruby の Float オブジェクトに変換して返します。 返り値の型が void の場合は nil を返します。それ以外の場合は整数として返します。

[PARAM] arry:
関数の引数を整数の配列で指定します。

[SEE_ALSO] Array#pack, String#unpack

calltype -> Symbol
calltype=(sym)

自身の呼出規約を表すアクセサです。 サポートされている規約は :cdecl と :stdcall です。

[PARAM] sym:
自身の呼出規約を Symbol オブジェクトで指定します。

[SEE_ALSO] http://ja.wikipedia.org/wiki/%E5%91%BC%E5%87%BA%E8%A6%8F%E7%B4%84

ctype -> Integer
ctype=(type)

自身の返り値の型を表すアクセサです。

[PARAM] type:
自身の返り値の型を DL に定義された定数で指定します。
inspect -> String
to_s -> String

自身の情報を人間に読みやすい文字列にして返します。

name -> String

自身の名前を文字列で返します。

ptr -> Integer
ptr=(addr)

自身が表すライブラリ関数のアドレスを表すアクセサです。

[PARAM] addr:
ライブラリ関数のアドレスを整数で指定します。
to_i -> Integer

自身が表すライブラリ関数のアドレスを返します。 DL::CFunc#ptr と同じです。

モジュール関数

last_error -> Integer

[TODO]

最後に関数が呼び出されたときの errno を整数で返します。 この値はスレッドローカルです。

[SEE_ALSO] errno(3)

class DL::CFunc