[#46647] RubyでWindowsの常駐サービスプログラムを作る方法 — kouichi_someya@...

はじめまして。

12 messages 2009/12/16
[#46649] Re: RubyでWindowsの常駐サービスプログラムを作る方法 — "U.Nakamura" <usa@...> 2009/12/17

こんにちは、なかむら(う)です。

[ruby-list:46718] Re: 拡張ライブラリで引数の数が違うオーバーロード関数の定義の仕方に関する質問

From: Tietew <tietew@...>
Date: 2009-12-28 11:07:40 UTC
List: ruby-list #46718
On Mon, 28 Dec 2009 15:04:51 +0900
In article <4B384956.10000@wolf.dog.cx>
[[ruby-list:46717] Re: 拡張ライブラリで引数の数が違うオーバーロード関数の定義の仕方に関する質問]
ueda <tueda@wolf.dog.cx> wrote:

> if (rb_scan_args (argc, argv, "10*", &val_name) == 1) {
> printf ("引数は1個\n");
> return Qnil;
> }

これでは駄目です。引数が二個以上の時、不定のメモリ領域にアクセスしようと
してしまいます。

rb_scan_argsは一回だけ呼ぶようにして、戻り値で分岐してください。

VALUE value_or_data, offset;
int nargs = rb_scan_args(argc, argv, "11", &value_or_data, &offset);
switch(nargs) {
  /* 一個 */
} else {
  /* 二個 */
}


-- 
Tietew <tietew@tietew.net>
Blog: http://www.tietew.jp/
PGP: 26CB 71BB B595 09C4 0153  81C4 773C 963A D51B 8CAA


In This Thread