1
我的目标是简单地调用从C++使用该功能的内部“自我”来访问该表的字段和函数表函数。我一直在'self.name'这一行上得到可爱的'尝试调用nill值(本地自我)'。以下是我的Lua脚本。从C++调用Lua表函数w /函数自
Foo = { name = 'Foo' }
function Foo:OnUpdate()
print('In OnUpdate in Lua')
print(self.name)
end
下面是我的C++代码(忽略了现在的任何错误处理)。
lua_State* L = luaL_newstate();
luaL_openlibs(L);
luaL_dofile(L, "foo.lua");
lua_getglobal(L, "Foo");
lua_getfield(L, -1, "OnUpdate");
lua_pcall(L, 0, 0, 0);
当 'lua_pcall' 叫,我看 '中的OnUpdate在Lua' 在CLI中,但从来没有 '富'。如果我检查'lua_pcall'的错误,我会收到上面提到的错误消息。在调用'lua_pcall'之前我是否缺少某个Lua C API函数?我知道''。与lua中的':'利用'自我'。如果我在“Foo:Update()”这样的Lua脚本中添加一个调用,那么一切都很完美。这让我很难过。
美丽!非常感谢! –