たむらです。

nobu.nakada / nifty.ne.jp wrote:

> なかだです。
> 
> At 14 Jul 2001 08:09:32 +0900,
> tamra / mail.goo.ne.jp wrote:
> > ■isc_expand_dpb() でエラーになる問題
> > なかださんから指摘があったように、APIリファレンスガイドに
> > 『Windows 95 およびWindows NT では,引数の個数が固定されている関数
> > には,常に標準呼び出し規約(_stdcall)を使用します。引数の個数が
> > 可変の関数はisc_start_transaction(),
> > isc_expand_dpb(),isc_event_block() の3 つだけです。これらにはcdecl 
> > 規約を使用します。』
> > とありました。いままでの所インポートライブラリの作り方の問題か
> > BCC以外では動いてません。
> 
>   うーん、パッチを見るとInit_interbase()が__stdcallになってるだ
> けのような気がしますが、Interbaseのヘッダにあるプロトタイプ宣言
> にはすでに__stdcallはついてましたか、ひょっとして。

ついてますねぇ。IntetBaseは、Win/Linux同じ Ibase.h というファイルを
インクルードします。この辺りもうちょっと調べてみます。

> # なんかリバースパッチになってますが。

済みません、はずかしぃ〜。

> > ■export問題
> > Borland C++ Compiler 5.5 (BCC)にて、interbase.c をいぢらずに、
> > interbase.so でシンボルをエクスポートする方法が判らなかったので、
> > ソースをいぢりました。
> 
>   BCCじゃ.defファイルは効きませんか。リンクのところではコメント
> アウトしてあるようですが、エラーになりました?
> 
> > オプションとかで対応できると思われるのですが、vc++でのオプションをどなたか
> > 教えていただけませんか。
> > ((* ruby.h は触らずに、-Dinline指定で大丈夫になりました。*))
> 
>   vc++でのオプションというのは? #define inlineを入れるなら
> ruby.hじゃなくてconfig.hでしょう。bcc用のconfig.hを作ったほうが
> いいのかも。

Makefile の中で、bcc32 のオプションで、-Dinlineしたということです。
ilink32 のオプションで、.def 見るようなことが出来るのかなぁと
bccのヘルプとか web で調べた限りでは判らなかったのですが。

たむら けんいち