- 245 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 12:06:33 ]
- もう少しマニュアルとサンプルとか見直して出直してきたほうがいいぞー
概念的にはもちろんそういうことができるが、C++ のインスタンスの情報は squirrel 側は当然知らないので、ポインタを渡しただけでは何もできない。 呼び出し用のラッパーを squirrel の流儀で構築する必要がある。 具体的には、C++ のインスタンスは、ユーザデータ型をつかって保持し、 メソッド呼び出しは、そのインスタンスを使ってメンバ呼び出しをする Cのラッパー関数を、ネイティブクロージャとして、そのユーザデータ型の オブジェクトの委譲テーブルに登録することで実現する。 sqplus はこれの記述を簡易化するためのテンプレートライブラリ。 メンバメソッドの引数から自動的にラッパーを組み上げて登録してくれる。 基本的には、登録したクラスを、squirrel 側からインスタンス化して使うのが想定されてて、 C++ 側で生成したインスタンスをはめこむのは原理的にはできるはずだけど、sqplusが それをサポートしてたかどうかは知らない。
|

|