2010-02-23から1日間の記事一覧

頓挫w

バインダが使いこなせんw。久しぶりのtemplateヘルだった。templateとマクロでできているとうまく行かない時に難航する。結局sqlplus.hのMatchがどういう経路で呼ばれているのか分からんかった(呼ばれるというかtemplateのインスタンス化とかか?)。今日の…

オーバーロードメンバ関数の登録

こんな感じでキャストで特定してやれば渡せる。 メンバ関数は所属するクラスまでが型に含まれていてそれを表すのに (irr::scene::ISceneManager::*) こんなのが必要だった。 .Func(_SC("getMesh"), (irr::scene::IAnimatedMesh*(irr::scene::ISceneManager::…

未登録のクラスをsquirrelに返したときのエラー

最終的に if(len<0) len = (SQInteger)scstrlen(news); でnews=NULLで止まる。 これは、中で呼ばれるSqrat::PushVarに未登録の型が渡されたときの現象だった。

ENUMを引数に持つ関数の呼び出しでクラッシュ

デバッガで見ると > sqirr.exe!Sqrat::Var<enum irr::video::E_DRIVER_TYPE>::Var<enum irr::video::E_DRIVER_TYPE>(SQVM * vm=0x003de640, int idx=0x00000002) 行 47 + 0x13 バイト C++sqratTypes.hの value = *ClassType<T>::GetInstance(vm, idx); // ClassType<T>::GetInstance(vm, idx)が0を返しそれの参照先を得ようとして死亡</t></t></enum></enum>…

irrlichtのクラス・列挙型をエクスポート

引き続き、前から順番にエクスポートしていくがひとつsqratの定数のエクスポート様式に合わせてスクリプトを変更した。c++でのネストしたnamespace内のenum irr::video::EDT_SOFTWARE をとりあえず irr.video.EDT_SOFTWAREとしていたが都合により irr.EDT.SO…

sqratでbind

c++バインドにはsqratを使うことにした。 http://scrat.sourceforge.net/ 手順等は http://www.ruche-home.net/?%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%2F%C1%C8%A4%DF%B9%FE%A4%DF%B8%C0%B8%EC%2FSqrat%2F%B3%B5%CD%D7%A4%C8%C6%B3%C6%FE を参考にし…

squirrelはじめました

irrlichtのシーン構築をC++の外部に出す方法を模索中。ノードの位置を変える度に再コンパイルが発生するなど、開発効率が大変よろしくない。はじめはluaでシーン記述をやるつもりだったのだが整数と浮動少数の区別が無いことなどいろいろ気になりだした。そ…