[Gauche-devel-jp] Re: FILE* を define-cproc で受け取るには?

Back to archive index

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






Gauche-devel-jp メーリングリストの案内
Back to archive index