きままにブログ

プログラミングを主とした私のメモ帳です。寂しいのでコメントください笑

2014-10-01から1ヶ月間の記事一覧

placement newを使ってLuaで確保したメモリに上書き

ユーザーデータを使うとき、Lua側でメモリ管理をしてもらうためにlua_newuserdataを使う。その戻り値は確保した先頭のポインタであるため、これをnewの引数にとってPlacement newを行う。 int FDTDLua::L_createMaterial(lua_State* L) { auto self = (FDTDL…

クロージャーを纏めて登録

C++の関数をLuaから呼び出す C++をLuaから呼び出す際、C++側のクラスのなかのメソッドを呼び出したい場合、そのクラスのポインタが必要となる。グローバル変数に代入するのは気持ちが悪いので、Luaのクロージャーにポインタを記憶させ、関数が呼ばれるたびに…

LuaとC++の連携

Luaのプログラム例 まずはLuaで次のようなことをしてみたいと思う。 moc = MOC.new(); moc2 = MOC.new(); function func(x) setNumber(x); moc:set(x); moc2:set(x * 2); return x * x; end function call() x = getNumber(); print("x is " .. x .. "\n"); …