Shiro Kawai
shiro****@lava*****
2005年 4月 15日 (金) 19:51:08 JST
From: Makoto Satoh <makot****@yahoo*****> Subject: [Gauche-devel-jp] FILE* を define-cproc で受け取るには? Date: Fri, 15 Apr 2005 17:02:18 +0900 (JST) > この場合、gd-image-pngはポートpを受け取らなければなりませんが、 > そういう場合はdefine-cprocの中ではどのようにpを受け取って、 > Cコードの中ではどのようにファイルポインタに(?)するのでしょうか? ポートを渡すのが一番わかりやすいと思います。 こんな感じでどうでしょう。 http://lists.sourceforge.jp/mailman/archives/gauche-devel-jp/2004-September/001197.html http://lists.sourceforge.jp/mailman/archives/gauche-devel-jp/2004-September/001198.html > また、GDではイメージオブジェクトに対して描画命令を与えていくので、 > Cでは副作用ばかりな感じになってしまいますが、Scheme手続きは > 都度イメージオブジェクトを返すようにしたほうが良いでしょうか? 私が自分で書く時は、(1)なるべく元のC APIに近い低レベルAPIを stubで提供 (2)その上に高レベルAPIをSchemeで構築、というのを 原則としています。(1)でも例えばNULLポインタを#fにマップする だとか、ポインタ渡しのout引数を多値を返すようにマップするだとか、 Schemeのセマンティクスに合わせた変更は行いますが。 --shiro