为什么在使用LuaPlus时我不能在函数中返回LuaObject?

时间:2014-10-11 04:58:29

标签: c++ pointers lua luaplus

我在使用LuaPlus的游戏编码完成第4版中的示例。

在示例中,在我自己尝试的任何代码中,如果它的返回值为LuaObject,我无法将函数注册到lua。

LuaObject myClass::CreateFromScript(void)
{
Player* pCppInstance = new Player();

LuaObject luaInstance;
luaInstance.AssignNewTable(pLuaState);

luaInstance.SetLightUserData("__object", pCppInstance);

LuaObject metaTable = pLuaState->GetGlobals().GetByName("Players");
luaInstance.SetMetaTable(metaTable);

return luaInstance;
}

globals.RegisterDirect("createPlayer", &myClass::CreateFromScript);

和.h

static LuaObject                CreateFromScript(void);

当我将返回值设置为LuaObject时,总会发生错误。这就是为什么当我尝试在代码中返回一个具有不同功能的LuaObject时,我无法做到这一点。

error: LuaPlusCD.h (line 158)
"no matching function for call to 'Push(lua_State*&, LuaPlus::LuaObject&)'

0 个答案:

没有答案