From: Koji Oda Date: 1999-12-24T14:03:35+09:00 Subject: [ruby-dev:8713] Re: [win] dir name 小田@QNES です。 --- On Fri, 24 Dec 1999 13:20:21 +0900 [[ruby-dev:8712] Re: [win] dir name] EGUCHI Osamu wrote: > えぐち@エスアンドイー です。 > > oda> > > 最初に } が来るのは、驚きが多いので(笑) > oda> > > defines.h でなく、 ruby.h で win32.h を include して、 > oda> > > その時に extern "C" の囲いをとるのが、無難に思います。 > oda> > > oda> > extern "C++" {} ではだめですか? > oda> > oda> おぉ! > oda> こんなのがあるんですか。知りませんでした(^^;;; > > 気になっていたのですが、 > > defined(__cplusplus) > > が真って事は、C++ ソースとして ruby のソースをコンパイルしてませんか? > これで(プロトタイプ宣言で引数の型を教えていないのに)リンケージが > うまく行きますか? > #ってうまく行ってんだろうなぁ、動いてるんだから。 ええ。上手くいってます。 ただ、ruby そのもの(ruby.exe & rubymw.dll) は、Cとしてmake しています。 C++拡張モジュール をmake する際に、include ruby.h してますので > defined(__cplusplus) は、その時に使われる定義です。 > それとも MSC は C コンパイラとして使っても、__cplusplus が定義される? いえ、定義されません。 MSVC は、ソースファイルの拡張子で判断しているみたいで、.c の時は C コンパイラとして、.cpp の時は C++ コンパイラとして動きます。 # でも、.cxx ってやると C と見なされるみたい(^^; ∪*****/\*****\/*****/\*****∪ Koji Oda NEC Software Kyusyu 1st Development Department Based Software Division E-Mail:oda@bsd1.qnes.nec.co.jp ∩*****/\*****\/*****/\*****∩