luabindのメモ書き2とQtインストール

luabindでluaスクリプトからテーブルを関数の引数として受け取る方法

C++側の関数の引数には luabind::object 型の変数を設定して、


SDL_Rect drawRect = {0, 0, 0, 0};
if(luabind::type(rect) != LUA_TTABLE)return;
if(luabind::type(rect["x"]) == LUA_TNUMBER){drawRect.x = luabind::object_cast<Sint16>(rect["x"]);}
if(luabind::type(rect["y"]) == LUA_TNUMBER){drawRect.y = luabind::object_cast<Sint16>(rect["y"]);}
if(luabind::type(rect["w"]) == LUA_TNUMBER){drawRect.w = luabind::object_cast<Uint16>(rect["w"]);}
if(luabind::type(rect["h"]) == LUA_TNUMBER){drawRect.h = luabind::object_cast<Uint16>(rect["h"]);}

こんなかんじでテーブルのメンバを取得する。
型チェックが要らないなら、drawRect.x = luabind::object_cast(rect[“x”]);だけでもOK。


QTのインストール
Building Qt on Windows (MinGW)を見てインストール中。
makeではなく、mingw32-makeを使うらしい。

luabindのメモ

C++のクラスをLuaに公開するのにluabindが便利とのことで投入検討。

Ubuntuのパッケージは要求するboostが古すぎるのかインストール拒否。
しょうがないので、自前で.aファイル作成。

ただその際に、公式ページからリンクされてるluabindはlua5.2に対応してないっぽいので
https://bitbucket.org/jlsandell/luabind/downloadsにある別のバージョンを使用。(Branchesのdefaultってほう)
以下、適当なMakefile.am


noinst_LIBARIES = libluabind.a

lib_LIBRARIES = libluabind.a

libluabind_a_SOURCES = 							\
	lua/luabind/src/class.cpp					\
	lua/luabind/src/exception_handler.cpp		\
	lua/luabind/src/pcall.cpp					\
	lua/luabind/src/class_info.cpp				\
	lua/luabind/src/function.cpp				\
	lua/luabind/src/scope.cpp					\
	lua/luabind/src/class_registry.cpp			\
	lua/luabind/src/inheritance.cpp				\
	lua/luabind/src/stack_content_by_name.cpp	\
	lua/luabind/src/class_rep.cpp				\
	lua/luabind/src/link_compatibility.cpp		\
	lua/luabind/src/weak_ref.cpp				\
	lua/luabind/src/create_class.cpp			\
	lua/luabind/src/object_rep.cpp				\
	lua/luabind/src/wrapper_base.cpp			\
	lua/luabind/src/error.cpp					\
	lua/luabind/src/open.cpp

ゲームに組み込むだけだからnoinstでインストールしないように指定。
あとはlsでリストアップしたcppファイル列挙して終わり。

明日以降組み込んでみるか。

ここ最近

会社の元同僚からanalogという、apacheログの解析ツールを教えてもらったので投入してみた。

apacheのログは毎日シェルスクリプトで圧縮&リセットするようにしてたからその前に解析するようにしてたけど、前日分しか取れないっていう問題があったので、logrotateを使ってローテーションするように変更。上手く行ってないようだったらシェルスクリプトでの圧縮先を変えてどうにかする予定。

ただ、微妙に欲しい情報が取れない問題が残ってるので、どうするか検討中。もういっその事自分で書くか?pythonの練習も兼ねて。

あとなんか最近マウスの調子が悪い。バッテリー交換したけど、改善する様子があまりない…故障?