Lua中调用C++函数实例
到这为止,大家对Lua和C++之间的通信应该有些熟悉了,今天我们来介绍最后一个操作。
(旁白:什么?最后一个?要结束了么?太好了~!)
上一章传送门:https://www.nhooo.com/article/55097.htm
1.Lua调用C++的函数
Lua要调用C++的函数还是蛮方便的,首先,我们来创建一个c++函数先:
public: staticintgetNumber(intnum); intHelloLua::getNumber(intnum){ CCLOG("getNumbernum=%d",num); returnnum+1; }
类的什么的,我就忽略了,直接上函数。
(旁白:==好懒!)
这是一个很简单的函数,给出一个值,返回一个+1后的值。
现在,我们想在Lua中调用这个函数,得多写一个函数。
(旁白:那个,为嘛getNumber函数是静态的?)
public: staticintcpp_GetNumber(lua_State*pL);
intHelloLua::cpp_GetNumber(lua_State*pL){ /*从栈顶中取一个值*/ intnum=(int)lua_tonumber(pL,1);
/*调用getNumber函数,将返回值入栈*/ lua_pushnumber(pL,getNumber(num));
/*返回值个数,getNumber只有一个返回值,所以返回1*/ return1; }