lua_tinker包括一個.h文件與.cpp文件,實現(xiàn)C++與LUA之間相互調(diào)用。采用C++模板實現(xiàn),綁定函數(shù)的參數(shù)個數(shù)有限制,可以自己擴展。函數(shù)綁定到lua中的名稱可以自定義,可以與C++中不同,例如加上特定前綴或后綴。除了函數(shù)綁定還lua tinker還封裝了函數(shù)調(diào)用,讀取設(shè)置變量等操作。lua_tinker也是用C++對lua api的封裝,lua_tinker可以不作任何修改就可以支持lua5.1。
如果支持lua5.2,需要對其進行修改, 方法是用lua_setglobal和lua_getglobal來替換原來的lua_settable和lua_getglobal。另外lua5.2把lua_open這個宏去掉了,需要直接使用luaL_newstate接口。
在linux平臺的編譯命令示例:g++ sample3.cpp lua.h lualib.h lua_tinker.cpp -llua
這是lua_tinker的使用例子和源碼
lua_tinker