From: "藤本尚邦 / FUJIMOTO Hisakuni" Date: 1998-05-29T22:25:14+09:00 Subject: [ruby-dev:2789] Re: experimental release 1.1b9_21 藤本です、こんにちは。 From: "MAEDA Shugo" Subject: [ruby-dev:2787] Re: experimental release 1.1b9_21 Date: Fri, 29 May 1998 20:58:36 +0900 > 前田です。 > > >せっかく DECLSPEC を define してるのに, なぜこれを使 > >わないで拡張モジュール側で ifdef してるんでしょうか? > > すみません、ぼけてました。 > > >#DECLSPEC という名前はともかく. > > 拡張モジュールを書く側からすると、 > > #if defined(__BEOS__) && !defined(__POWERPC__) > #define IMPORT __declspec(dllimport) > #else > #define IMPORT extern > #endif > > として、 > > IMPORT VALUE cIO; > > ぐらいがよいかなと思うのですが、exportする時も > 同じ名前を使うことを考えるとIMPORTというのは変ですよね。 > 何か良い名前はないでしょうか。 を見ると #if _BUILDING_be #define _IMPEXP_BE __declspec(dllexport) #else #define _IMPEXP_BE __declspec(dllimport) #endif と書いているのでこれを参考にしてはどうでしょうか? 上のURLの文を読むと「Beとしては__declspecを使って欲しい」というニュ アンスが感じられます。Intel版は__declspecを使うしかないみたいなのでし かたないのかもしれませんが、そうすると何かのライブラリをポーティングし て共有ライブラリにするたびに、元のソースに変更をくわえなくちゃならなく なりますよね。困ったもんです (^^; BeTalk-Jで教えてもらったように、直接ruby.hやintern.hを変更せずruby.h の最初にberuby_impexp.hをインクルードするとかしてberuby_impexp.hの中に 集中的に__declspec関連を書くというのはできないでしょうか? ============================================================= 藤本尚邦 FUJIMOTO Hisakuni hisa@imasy.or.jp =============================================================