ライブラリ
- fiddle (21)
-
fiddle
/ import (4) - resolv (5)
- win32ole (3)
クラス
-
Fiddle
:: CStruct (1) -
Fiddle
:: Function (4) -
Fiddle
:: Pointer (7) -
Resolv
:: DNS (3) -
WIN32OLE
_ METHOD (1) -
WIN32OLE
_ PARAM (1)
モジュール
- Fiddle (10)
-
Fiddle
:: Importer (3) -
WIN32OLE
:: VARIANT (1)
キーワード
- +@ (1)
- -@ (1)
-
ALIGN
_ INTPTR _ T (1) -
ALIGN
_ PTRDIFF _ T (1) -
ALIGN
_ UINTPTR _ T (1) -
DATA
_ PTR (1) - NULL (1)
-
RSTRING
_ END (1) -
RSTRING
_ PTR (1) -
SIZEOF
_ INTPTR _ T (1) -
SIZEOF
_ PTRDIFF _ T (1) -
SIZEOF
_ UINTPTR _ T (1) - StringValuePtr (1)
-
TYPE
_ INTPTR _ T (1) -
TYPE
_ PTRDIFF _ T (1) -
TYPE
_ UINTPTR _ T (1) -
VT
_ PTR (1) - [] (1)
- call (1)
-
each
_ resource (1) - fiddle (1)
-
fiddle
/ import (1) - getresource (1)
- getresources (1)
-
is
_ pointer _ to _ heap (1) -
lex
_ get _ str (1) - new (1)
-
ole
_ type _ detail (1) - ptr (2)
-
rb
_ ary _ entry (1) -
rb
_ class2name (1) -
rb
_ gc _ mark _ children (1) -
rb
_ str _ cat (1) -
rb
_ str _ cat2 (1) -
rb
_ str _ new (1) -
rb
_ str _ new2 (1) - ref (1)
-
return
_ type _ detail (1) -
ruby 1
. 6 feature (1) -
ruby 1
. 8 . 4 feature (1) -
ruby
_ xrealloc (1) - size (1)
- sizeof (1)
- struct (1)
-
to
_ i (1) -
to
_ ptr (2) - union (1)
検索結果
先頭5件
-
Resolv
:: DNS :: Resource :: PTR (54085.0) -
DNS リソースの PTR レコード を表す抽象クラスです。
DNS リソースの PTR レコード
を表す抽象クラスです。
Resolv::DNS#getresource で PTR レコードを得たい場合は
Resolv::DNS::Resource::IN::PTR を使うべきです。 -
Resolv
:: DNS :: Resource :: IN :: PTR (54049.0) -
DNS リソースのクラス IN、タイプ PTR に対応する クラスです。
DNS リソースのクラス IN、タイプ PTR に対応する
クラスです。 -
WIN32OLE
:: VARIANT :: VT _ PTR -> Integer (18322.0) -
ポインタ型を示します(26)。
ポインタ型を示します(26)。
VT_PTRは、VOID*に相当するため、OLEオートメーションでは利用できません。 -
Fiddle
:: CStruct # to _ ptr -> Fiddle :: Pointer (18304.0) -
保持している構造体へのポインタを返します。
保持している構造体へのポインタを返します。 -
Fiddle
:: Function # ptr -> Integer | Fiddle :: Function (18304.0) -
関数ポインタを返します。
関数ポインタを返します。
Fiddle::Function.new の第1引数として指定したものを返します。 -
Fiddle
:: ALIGN _ INTPTR _ T -> Integer (18301.0) -
C の構造体における intptr_t のアライメントの値。
C の構造体における intptr_t のアライメントの値。 -
Fiddle
:: ALIGN _ PTRDIFF _ T -> Integer (18301.0) -
C の構造体における ptrdiff_t のアライメントの値。
C の構造体における ptrdiff_t のアライメントの値。 -
Fiddle
:: ALIGN _ UINTPTR _ T -> Integer (18301.0) -
C の構造体における uintptr_t のアライメントの値。
C の構造体における uintptr_t のアライメントの値。 -
Fiddle
:: SIZEOF _ INTPTR _ T -> Integer (18301.0) -
Cでの sizeof(intptr_t) の値
Cでの sizeof(intptr_t) の値 -
Fiddle
:: SIZEOF _ PTRDIFF _ T -> Integer (18301.0) -
Cでの sizeof(ptrdiff_t) の値
Cでの sizeof(ptrdiff_t) の値 -
Fiddle
:: SIZEOF _ UINTPTR _ T -> Integer (18301.0) -
Cでの sizeof(uintptr_t) の値
Cでの sizeof(uintptr_t) の値 -
Fiddle
:: TYPE _ INTPTR _ T -> Integer (18301.0) -
C の intptr_t 型を表す定数。
C の intptr_t 型を表す定数。 -
Fiddle
:: TYPE _ PTRDIFF _ T -> Integer (18301.0) -
C の ptrdiff_t 型を表す定数。
C の ptrdiff_t 型を表す定数。 -
Fiddle
:: TYPE _ UINTPTR _ T -> Integer (18301.0) -
C の uintptr_t 型を表す定数。
C の uintptr_t 型を表す定数。 -
char * StringValuePtr(VALUE val) (18301.0)
-
val が String でなければ to_str メソッドを使って String に変換し、 その実体のポインタを返します。
val が String でなければ to_str メソッドを使って String に変換し、
その実体のポインタを返します。
このマクロに渡した VALUE は ruby の GC から確実に保護されます。 -
char* RSTRING
_ PTR(RString str) (18301.0) -
引数 str の表す文字列のポインタの先頭を返します。
引数 str の表す文字列のポインタの先頭を返します。
@param str RString 構造体を指定します。
@see RSTRING_END -
void * DATA
_ PTR(VALUE dta) (18301.0) -
実際は struct RData* 型である dta から、 それがラップしているポインタを取り出します。
実際は struct RData* 型である dta から、
それがラップしているポインタを取り出します。 -
Fiddle
:: Pointer . to _ ptr(val) -> Fiddle :: Pointer (9358.0) -
与えられた val と関連した Pointer オブジェクトを生成して返します。
与えられた val と関連した Pointer オブジェクトを生成して返します。
val が文字列の場合は文字列が格納されているメモリ領域を指す Pointer
オブジェクトを返します。
IO オブジェクトの場合は FILE ポインタを表す Pointer オブジェクトを返します。
val に to_ptr メソッドが定義されている場合は、val.to_ptr を呼び、
Pointer オブジェクトに変換したものを返します。
val が整数の場合はそれをアドレスとする Pointer オブジェクトを返します。
上以外の場合は、整数に変換(to_int)し
それをアドレスとする P... -
Fiddle
:: Pointer # ptr -> Fiddle :: Pointer (9322.0) -
自身の指す値を Pointer にして返します。
自身の指す値を Pointer にして返します。
自身の指す値はポインタであると仮定します。
C 言語におけるポインタのポインタに対する間接参照 *p と同じです。
この返り値には、free 関数がセットされず、size は 0 とされます。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
cref = cptr.ref
p cref.to_s(4).unpack('l*')[0] #=> 136121648
p cptr.to_i #=> 136121648
... -
Fiddle
:: Function . new(ptr , args , ret _ type , abi=Fiddle :: Function :: DEFAULT , name: nil) -> Fiddle :: Function (406.0) -
ptr (関数ポインタ)から Fiddle::Function オブジェクトを 生成します。
ptr (関数ポインタ)から Fiddle::Function オブジェクトを
生成します。
ptr には Fiddle::Handle から Fiddle::Handle#sym などで取りだした
関数ポインタ(を表す整数)、もしくは関数を指している
Fiddle::Pointer を渡します。
args、ret_type で関数の引数と返り値の型を指定します。これには以下の
定数が利用できます。「-TYPE_INT」 のように符号を反転させると unsigned を
意味します。
* Fiddle::TYPE_VOID
* Fiddle::TYPE_VOIDP
* Fidd... -
VALUE rb
_ str _ cat2(VALUE str , const char *ptr) (397.0) -
文字列 str に C の文字列 ptr を破壊的に 連結します。ptr はヌル終端を仮定しています。
文字列 str に C の文字列 ptr を破壊的に
連結します。ptr はヌル終端を仮定しています。 -
VALUE rb
_ str _ new2(const char *ptr) (397.0) -
rb_str_new(ptr, strlen(ptr))
rb_str_new(ptr, strlen(ptr)) -
VALUE rb
_ str _ cat(VALUE str , const char *ptr , long len) (349.0) -
文字列 str に、長さ len (NUL 含まず)の C の文字列 ptr を破壊的に連結します。
文字列 str に、長さ len (NUL 含まず)の C の文字列
ptr を破壊的に連結します。 -
VALUE rb
_ str _ new(const char *ptr , long len) (349.0) -
ptr から len バイト分をコピーして Ruby の文字列を作成し返します。
ptr から len バイト分をコピーして
Ruby の文字列を作成し返します。
rb_str_new(0,0)
では空文字列を生成して返します。 -
Fiddle
:: Function # call(*args) -> Integer|DL :: CPtr|nil (319.0) -
関数を呼び出します。
関数を呼び出します。
Fiddle::Function.new で指定した引数と返り値の型に基いて
Ruby のオブジェクトを適切に C のデータに変換して C の関数を呼び出し、
その返り値を Ruby のオブジェクトに変換して返します。
引数の変換は以下の通りです。
: void* (つまり任意のポインタ型)
nil ならば C の NULL に変換されます
Fiddle::Pointer は保持している C ポインタに変換されます。
文字列であればその先頭ポインタになります。
IO オブジェクトであれば FILE* が渡されます。
整数であればそれがアドレスとみ... -
Fiddle
:: NULL -> DL :: CPtr (301.0) -
C の NULL ポインタ
C の NULL ポインタ -
static inline int is
_ pointer _ to _ heap(void *ptr) (301.0) -
-
void * ruby
_ xrealloc(void *ptr , long size) (301.0) -
引数と返り値の意味は realloc() と同じ。 ただしメモリ割り当てに失敗したときは GC を行いそれでもだめなときは NoMemoryError を raise する。 つまりこの関数が返り値を返したときは常に割り当ては成功している。
引数と返り値の意味は realloc() と同じ。
ただしメモリ割り当てに失敗したときは
GC を行いそれでもだめなときは NoMemoryError を raise する。
つまりこの関数が返り値を返したときは常に割り当ては成功している。 -
void rb
_ gc _ mark _ children(VALUE ptr) (301.0) -
v から指されているオブジェクトを全てマークします。
v から指されているオブジェクトを全てマークします。 -
static VALUE lex
_ get _ str(VALUE s) (97.0) -
文字列 s の lex_gets_ptr の後から一行取得し、返します。 lex_gets_ptr も進められます。
文字列 s の lex_gets_ptr の後から一行取得し、返します。
lex_gets_ptr も進められます。 -
fiddle (91.0)
-
*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。
*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。
dl と同等の機能を持ちますが、
dl は 2.0 以降deprecated となり、2.2.0 で削除されました。このライブラリ
を代わりに使います。
=== 使い方
通常は fiddle/import ライブラリを require して
Fiddle::Importer モジュールを使用します。
Fiddle モジュール自体はプリミティブな機能しか提供していません。
Fiddle::Importer モジュールは以下のようにユーザが定義した
モジュールを拡張する形で使います。
require ... -
ruby 1
. 6 feature (73.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
ruby 1.6 feature
ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン
になります。
((<stable-snapshot|URL:ftp://ftp.netlab.co.jp/pub/lang/ruby/stable-snapshot.tar.gz>)) は、日々更新される安定版の最新ソースです。
== 1.6.8 (2002-12-24) -> stable-snapshot
: 2003-01-22: errno
EAGAIN と EWOULDBLOCK が同じ値のシステムで、EWOULDBLOCK がなくなっ
ていま... -
Fiddle
:: Pointer . [](val) -> Fiddle :: Pointer (58.0) -
与えられた val と関連した Pointer オブジェクトを生成して返します。
与えられた val と関連した Pointer オブジェクトを生成して返します。
val が文字列の場合は文字列が格納されているメモリ領域を指す Pointer
オブジェクトを返します。
IO オブジェクトの場合は FILE ポインタを表す Pointer オブジェクトを返します。
val に to_ptr メソッドが定義されている場合は、val.to_ptr を呼び、
Pointer オブジェクトに変換したものを返します。
val が整数の場合はそれをアドレスとする Pointer オブジェクトを返します。
上以外の場合は、整数に変換(to_int)し
それをアドレスとする P... -
Fiddle
:: Importer # union(signature) -> Class (37.0) -
C の共用体型に対応する Ruby のクラスを構築して返します。
C の共用体型に対応する Ruby のクラスを構築して返します。
共用体型を Ruby 上で定義する方法は Fiddle::Importer#struct と
ほぼ同様です。C における
typedef union epoll_data
{
void *ptr;
int fd;
uint32_t u32;
uint64_t u64;
} epoll_data_t;
は、Ruby上では
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "lib... -
fiddle
/ import (37.0) -
fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。
fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。
通常は fiddle ライブラリを使わずこの fiddle/import ライブラリを使います。
主な使い方は fiddle も参照してください。
=== 高度な使用法
==== ○○の配列を関数に渡したい
例えば与えられた長さ len の double の配列の和を計算する関数
double sum(double *arry, int len);
があったとします。これを呼び出したい場合は以下のように Array#pack を使用します。
require 'fiddle/import'
m... -
Fiddle
:: Pointer # +@ -> Fiddle :: Pointer (22.0) -
自身の指す値を Pointer にして返します。
自身の指す値を Pointer にして返します。
自身の指す値はポインタであると仮定します。
C 言語におけるポインタのポインタに対する間接参照 *p と同じです。
この返り値には、free 関数がセットされず、size は 0 とされます。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
cref = cptr.ref
p cref.to_s(4).unpack('l*')[0] #=> 136121648
p cptr.to_i #=> 136121648
... -
Fiddle
:: Function # to _ i -> Integer (19.0) -
関数ポインタのアドレスを整数で返します。
関数ポインタのアドレスを整数で返します。
@see Fiddle::Function#ptr -
Fiddle
:: Importer # sizeof(t) -> Integer (19.0) -
C における sizeof(t) の値を返します。
C における sizeof(t) の値を返します。
t が文字列の場合、その文字列が表す C の型の size が返されます。
例えば、sizeof("char") は 1 を返します。
sizeof("char*") は環境によって 4 や 8 といった値を返します。
Fiddle::Importer#struct で定義した
構造体クラスを渡すと、その構造体のサイズを返します。
Fiddle::Importer#union で定義した共用体クラスも同様です。
t がクラスの場合、t が to_ptr というインスタンスメソッドを持っている
ならば t.size を返します。
それ... -
Fiddle
:: Importer # struct(signature) -> Class (19.0) -
C の構造体型に対応する Ruby のクラスを構築して返します。
C の構造体型に対応する Ruby のクラスを構築して返します。
構造体の各要素は C と似せた表記ができます。そしてそれを
配列で signature に渡してデータを定義します。例えば C における
struct timeval {
long tv_sec;
long tv_usec;
};
という構造体型に対応して
Timeval = struct(["long tv_sec", "long tv_usec"])
として構造体に対応するクラスを生成します。
このメソッドが返すクラスには以下のメソッドが定義されています
* クラスメソッド malloc
... -
Fiddle
:: Pointer # -@ -> Fiddle :: Pointer (19.0) -
自身を指す Pointer オブジェクトを返します。 C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。
自身を指す Pointer オブジェクトを返します。
C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。
この返り値には、free 関数がセットされず、size は 0 とされます。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
cref = cptr.ref
p cref.to_s(4).unpack('l*')[0] #=> 136121648
p cptr.to_i #=> 136121648
p cref.ptr.to_s ... -
Fiddle
:: Pointer # ref -> Fiddle :: Pointer (19.0) -
自身を指す Pointer オブジェクトを返します。 C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。
自身を指す Pointer オブジェクトを返します。
C 言語におけるポインタへのアドレス演算子の適用 &p と同じです。
この返り値には、free 関数がセットされず、size は 0 とされます。
例:
require 'fiddle'
s = 'abc'
cptr = Fiddle::Pointer[s]
cref = cptr.ref
p cref.to_s(4).unpack('l*')[0] #=> 136121648
p cptr.to_i #=> 136121648
p cref.ptr.to_s ... -
Fiddle
:: Pointer # size -> Integer (19.0) -
自身の指す領域のサイズを返します。
自身の指す領域のサイズを返します。
基本的には Fiddle::Pointer.new で指定したサイズが返されます。
Fiddle::Pointer.to_ptr で文字列を変換したときは、そのバイト数が返されます。
Fiddle::Pointer#size= でこの値を変更することができます。 -
Resolv
:: DNS # each _ resource(name , typeclass) {|resource| . . . } -> () (19.0) -
nameに対応するDNSリソースレコードを取得します。 見つかったリソースをひとつずつブロックに渡します。
nameに対応するDNSリソースレコードを取得します。
見つかったリソースをひとつずつブロックに渡します。
typeclass は以下のいずれかです。
* Resolv::DNS::Resource::IN::ANY
* Resolv::DNS::Resource::IN::NS
* Resolv::DNS::Resource::IN::CNAME
* Resolv::DNS::Resource::IN::SOA
* Resolv::DNS::Resource::IN::HINFO
* Resolv::DNS::Resource::IN::MINFO
* Res... -
Resolv
:: DNS # getresource(name , typeclass) -> Resolv :: DNS :: Resource (19.0) -
nameに対応するDNSリソースレコードを取得します。 最初に見つかったリソースを返します。
nameに対応するDNSリソースレコードを取得します。
最初に見つかったリソースを返します。
typeclass は以下のいずれかです。
* Resolv::DNS::Resource::IN::ANY
* Resolv::DNS::Resource::IN::NS
* Resolv::DNS::Resource::IN::CNAME
* Resolv::DNS::Resource::IN::SOA
* Resolv::DNS::Resource::IN::HINFO
* Resolv::DNS::Resource::IN::MINFO
* Resolv::DNS... -
Resolv
:: DNS # getresources(name , typeclass) -> [Resolv :: DNS :: Resource] (19.0) -
nameに対応するDNSリソースレコードを取得します。 見つかったリソース全てを配列にして返します。
nameに対応するDNSリソースレコードを取得します。
見つかったリソース全てを配列にして返します。
typeclass は以下のいずれかです。
* Resolv::DNS::Resource::IN::ANY
* Resolv::DNS::Resource::IN::NS
* Resolv::DNS::Resource::IN::CNAME
* Resolv::DNS::Resource::IN::SOA
* Resolv::DNS::Resource::IN::HINFO
* Resolv::DNS::Resource::IN::MINFO
* Resolv:... -
VALUE rb
_ ary _ entry(VALUE ary , long offset) (19.0) -
ary のインデックス offset の要素を返します。
ary のインデックス offset の要素を返します。
インデックスが範囲を越えるときは Qnil を返します。
負のインデックスも使えます。
対応するRubyコード
ary[offset] または
ary.at(offset)
使用例
VALUE num;
num = rb_ary_entry(ary, offset);
printf("%d\n", FIX2INT(num));
キャストを使った要素の参照方法
VALUE num = RARRAY(ary)->ptr[offset]; -
WIN32OLE
_ METHOD # return _ type _ detail -> [String] (19.0) -
返り値の型と属性を取得します。
返り値の型と属性を取得します。
@return 返り値の型と属性を文字列配列で返します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Application')
method = WIN32OLE_METHOD.new(tobj, 'Workbooks')
p method.return_type_detail # => ["PTR", "USERDEFINED", "Workbooks"]
属性が付加されていない場合は、WIN32OLE_METHOD#return_typeを要素と
... -
WIN32OLE
_ PARAM # ole _ type _ detail -> [String] (19.0) -
パラメータの属性を取得します。
パラメータの属性を取得します。
@return 型の属性を文字列配列で返します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'IWorksheetFunction')
method = WIN32OLE_METHOD.new(tobj, 'SumIf')
param1 = method.params[0]
p param1.ole_type_detail # => ["PTR", "USERDEFINED", "Range"]
パラメータの取り得る属性値はCOMのIDL(インターフ... -
char * rb
_ class2name(VALUE klass) (19.0) -
klass の名前を返します。 返り値の内容を変更したり free してはいけません。
klass の名前を返します。
返り値の内容を変更したり free してはいけません。
RSTRING(rb_class_path(klass))->ptr
と同じです。 -
char* RSTRING
_ END(RString str) (19.0) -
引数 str の表す文字列のポインタの末尾を返します。
引数 str の表す文字列のポインタの末尾を返します。
@param str RString 構造体を指定します。
@see RSTRING_PTR -
ruby 1
. 8 . 4 feature (19.0) -
ruby 1.8.4 feature ruby 1.8.4 での ruby 1.8.3 からの変更点です。
ruby 1.8.4 feature
ruby 1.8.4 での ruby 1.8.3 からの変更点です。
掲載方針
*バグ修正の影響も含めて動作が変わるものを収録する。
*単にバグを直しただけのものは収録しない。
*ライブラリへの単なる定数の追加は収録しない。
以下は各変更点に付けるべきタグです。
記号について(特に重要なものは大文字(主観))
# * カテゴリ
# * [ruby]: ruby インタプリタの変更
# * [api]: 拡張ライブラリ API
# * [lib]: ライブラリ
* レベル
* [bug]: バグ修正
* [new]: 追加され...