From: Takaaki Tateishi Date: 2006-07-04T01:21:32+09:00 Subject: [ruby-dev:28950] Re: FUNC_CDECL/FUNC_STDCALL are not defined? U.Nakamura wrote: > | > 私がやると、FUNC_なんたらを定義することを避けちゃってこんなん > | > になりそうですが、かっこわるい... > | > | FUNC_STDCALL/CDECLが定義されないことがコンパイルエラーの原因であれば、 > | configure.inで対処する方が良いと思います。 > > いや、なぜ定義してないかというと、その引数では「無理」なので... > VC++の場合、 > > 戻り値 __cdeclとか__stdcallとか 関数名(引数リスト) > > とならないといけないので、どうしようもないのです。 私は、上記の記法が有効かどうかをconfigureでチェックすればいいのではないかと思って います。そのような用途のためのFUNC_CDECL/STDCALLではないというのであれば、逆にdl側 では、それらのマクロを一切使わない方向を考えても良さそうだと現時点では思っています。 うまくは書けないのですが、FUNC_CDECLは、純粋に__attribute__で有効な属性だけをチェック することが目的なのか、それとも、プロトタイプ宣言(または関数定義など)で有効な記法を チェックすることが目的なのかということを考えると、どちらでしょう? なんとなく実装だけみると前者のようですが、それは使い勝手が良いかと言うと(少なくともdl の実装にとっては)そうでもないように思います。(言葉足らずで申し訳ありません。) -- Takaaki Tateishi