Universal eXecutable Format - 02
Essenでのuxfのサポート
- いや、任意のEssen文を実行できる関数がuxfdlで提供できればより良い気がする。
- じゃあ、entryの引数を UCHAR *p だけじゃなくて void *handle も付けることにしよう。このhandleはessen関数を呼ぶときにのみ使う。
- Essenからuxfにデータを渡す場合、Essen側で文字列変数を一つ作り、そこに渡したいパラメータを書いて、uxfに渡す(unsigned char *pになる)。
- uxf側では、与えられたpの一部を書き換えて終了すれば、Essenはそれを受け取ることができる。
- ではessen関数を使って、uxfからessen命令を実行する場合は?
- やはり文字列(というかバイト列だけど)を作ってそれを渡し、そこから変数を作っていく感じになると思われる。
- これをやるとなると、Essen側に、特殊な文字列型がほしくなるなあ。
- 普通の文字列型: 変数や値の寿命が尽きたら、領域は解放される
- 特殊な文字列型: 変数や値の寿命が尽きても、領域の解放をしない
- Essenから値を返す場合も、同じ文字列にデータを書き込んでいけばいい。そしたらuxf側でも値を受け取れる。
- しかしこうしてみると、Essenとはなんなのだろうか。
- さまざまな言語をつなぐインターフェース環境?
- そういう考え方も面白いかもしれない。
こめんと欄
|