C++代码创建Lua 5.3.6表始终返回尝试调用表值

无论我做什么都不起作用,我已经尝试了人类所知道的一切。

以下是C代码:

int l_getHeader(lua_State* L)
{
    lua_createtable(L, 0, 5);
    lua_pushnumber(L, asset);
    lua_setfield(L, -2, "asset");
    lua_pushnumber(L, partner);
    lua_setfield(L, -2, "partner");
    lua_pushnumber(L, collector);
    lua_setfield(L, -2, "collector");
    lua_pushnumber(L, tm);
    lua_setfield(L, -2, "time");
    lua_pushnumber(L, count);
    lua_setfield(L, -2, "count");
    lua_pushnil(L);
    lua_setglobal(L, "header");

    return 1

这是Lua调用

function load_header()
    local header = {}
    -- 仍然不确定是否应该分配返回
    get_header()
    -- header = get_header()
    print("asset " .. header["asset"])
    print("partner " .. header["partner"])
    print("collector " .. header["collector"])
    print("time " .. header["time"])
    print("count " .. header["count"])
end

我总是得到同样的错误。我尝试把所有项目都推到堆栈上,使用rawset等。 NADA!!这是我能想到的最简单的例子,也不起作用,看起来应该。

点赞