DL::Symbol

DL

クラスメソッド

Symbol.new(addr, name = nil, type = nil)

type が nil でないなら 型 type の Symbol オブジェクト sym を作成する。 関数が割り当てられているなら addr はそのアドレス。type が nil なら DL::PtrData オブジェクトを返す。

型の指定には C 言語の型を表す文字で構成した文字列を使う。 文字列の 1 文字目には関数の戻り値を、 2 文字目以降には関数の引数を表す文字を順に書いていく。 型を表す文字と対応する C 言語の型は次のようになっている。

  • "C" char
  • "c", "s" char *
  • "H" short
  • "h" short *
  • "I" int
  • "i" int *
  • "L" long
  • "l" long *
  • "F" float
  • "f" float *
  • "D" double
  • "d" double *
  • "0" void
  • "P", "p" void *
  • "S" const char *
  • "a", "A" [] (配列)

たとえば戻り値が int、引数が const char * と long である関数の型は "ISL" という文字列で指定する。

Symbol.char2type(char)

型に相当する文字 char を取り、C 言語の型修飾を返す。

メソッド

proto()

関数のプロトタイプを返す。

Symbol#name()

関数名を返す。

cproto(),
to_s()

C 言語形式のプロトタイプを返す。

Symbol#inspect()

人間が読みやすい形式の文字列を返す(訳注:意訳)。

call(arg1,arg2,...,argN),
self[](arg1,arg2,...,argN)

パラメータ arg1, arg2, ... argN で関数を呼び出す。結果は、戻り値 r やパラメータrs からなる。rs は配列。

to_ptr

対応する DL::PtrData オブジェクト ptr を返す。



rubyist ML