为什么在使用LuaPlus时我无法在函数中返回一个LuaObject?

我正在遵循《Game Coding Complete 4th Edition》中使用的 LuaPlus 示例。

在这个示例中,以及我尝试过的任何代码中,如果一个函数的返回值为 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 时无法实现的原因。

错误:LuaPlusCD.h(第158行)
“对于调用'Push(lua_State *&,LuaPlus :: LuaObject&)'的无匹配函数”
点赞