luabind常用方法总结

 luabind比较复杂,功能包罗万象,但使用起来比较简单,特别是最常用的方法只有几个,下面结合一个简单的例子总结一下。

    在我们游戏应用中,一般都是已c++为主导的,也就是说c++主动调用lua脚本。
先写一个比较常见的lua脚本:
nGlobal = 10 --一个全局的整形变量 strGlobal = "hello i am in lua" --一个全局的字符串变量 --一个返回值为int类型的函数 function add(a, b) return a+b end --一个返回值为string类型的函数 function strEcho(a) print(a) 10 return 'haha i have print your input param' end cppapi.testFunc() --调用c++暴露的一个测试函数 t={name='ettan', age=23, desc='正值花季年龄'} 
lua脚本结束
下面写c++函数中的调用了
#include #include using namespace std; #include #include void testFunc() { cout<<"helo there, i am a cpp fun"<(luabind::globals(L)["nGlobal"]) ; //调用lua中的字符串变量 string strLuaGlobal = luabind::object_cast(luabind::globals(L)["strGlobal"]); //获取table,方法一,通过luabind::object 固有方法 luabind::object luaTable = luabind::globals(L)["t"] ; string name=luabind::object_cast(luaTable["name"]) ; int age = luabind::object_cast(luaTable["age"]) ; //获取table,方法二,通过gettable string desc = luabind::object_cast(luabind::gettable(luaTable,"desc")); //下面是调用lua中函数 int nAddRes = luabind::call_function(L, "add", 3, 4) ; string strEchoRes = luabind::call_function(L, "strEcho", "c++参数") ; } catch(...) { cout<<"error"<
    我们目前常用的方法暂时就有这些,当然在实际编码中,c++暴露给lua的经常是c++类中的函数,只要稍加修改就行!

 

你可能感兴趣的:(luabind常用方法总结)