えぐち@エスアンドイー です。

>>> In message [ruby-dev:8697] Re: [win] dir name
    On Wed, 22 Dec 1999 13:32:05 +0900, Koji Oda <oda / bsd1.qnes.nec.co.jp> said:

oda> 小田@QNES です。
oda> 
oda> ---
oda> On Wed, 22 Dec 1999 13:13:15 +0900
oda> [[ruby-dev:8696] Re: [win] dir name]
oda> EGUCHI Osamu <eguchi / cagiva.shizuokanet.ne.jp> wrote:
oda> 
oda> > oda> 金子さんが言われているように、extern "C" でくくるとエラーになるので
oda> > oda> extern "C" から「出して」います。
oda> > oda> # win32.h は、ruby.h に include されてますので。
oda> > oda> 
oda> > oda> 括弧が逆になっているわけではありません(^^;
oda> > 
oda> > この方法は、win32/win32.h が include される時に 
oda> > 
oda> >   extern "C" {
oda> >      ...
oda> >   }
oda> > 
oda> > の内側にいる事を仮定していて、芳しくないのでは?
oda> > #単体で win32.h を include する事ができない。^^;;;
oda> 
oda> win32.h 単体でinclude する事があるかどうかはわかりませんが、
oda> 私の場合、拡張モジュールをC++ で作成する場合に引っかかったので
oda> 入れてもらいました。
oda> # 場当たり的ではありますが(^^;;;

最初に } が来るのは、驚きが多いので(笑)
defines.h でなく、 ruby.h で win32.h を include して、
その時に extern "C" の囲いをとるのが、無難に思います。

oda> 拡張モジュールを作る場合は、大抵 include "ruby.h" ですよね?

これは同感、ついでに、 win32.c で win32.h を include していますが、
ruby.h をその前に include しているので、これも不要ですね。

oda> > ところで、ここで math.h を include する理由はなんですか?
oda> > ruby.h で既に include されていますが。
oda> 
oda> ? あれ?そうですか?
oda> 1.4.3 ではありませんけど。

すみません。
これ私の勘違いでした。 _o_

oda> > #それにしても C++ って、ひどい構文!!
oda> 御意。

リンケージをいじれるってのは、面白いのだけれども、
入れ子にすると話が面倒ですね。

	えぐち