ruby のバグか(自作の)拡張ライブラリのバグかわからなかったので、
取り敢えずこちらでお尋ねします。

拡張ライブラリ内で "re.h" をインクルードして ismbchar を使用している
のですが、以下の環境で Segmentation fault を起こすようになって
しまいました。

	ruby 1.8.0 (2003-08-01) [i386-mswin32]

以下の環境では問題ありませんでした。

	ruby 1.6.8 (2003-02-13) [i586-mswin32]

拡張ライブラリ(動的リンク)から ruby の関数を使用するには、
何か特別な宣言等が必要になったのでしょうか?


一応 ismbchar について 1.6.8 との違いを調べてみると、実態である
変数 re_mbctab の宣言が変わっていました。

	ruby 1.8.0 (2003-08-01) [i386-mswin32]
		extern
		const unsigned char *re_mbctab;

	ruby 1.6.8 (2003-02-13) [i586-mswin32]
		extern __declspec(dllimport)
		const unsigned char *re_mbctab;

1.8.0 では、コンパイル時に IMPORT マクロが定義されなくなった事が
原因のようです。試しに、IMPORT マクロを定義してコンパイルしてみると、
Segmentation fault は起きませんでした。


----
馬越
pegacorn / jcom.home.ne.jp