【问题标题】:Get value from lua_State in C++ fail从 C++ 中的 lua_State 获取值失败
【发布时间】:2021-11-11 01:40:07
【问题描述】:

我想获取struct lua_State中的值,但是发现值不对。


void func(lua_State* L)
{
        lu_mem nBytes     = 0;
        int    stacksize  = 0;
        int    sweepstrgc = 0;
        lu_mem estimate   = 0;

        nBytes     = L->l_G->totalbytes;
        stacksize  = L->stacksize;
        sweepstrgc = L->l_G->sweepstrgc;
        estimate   = L->l_G->estimate;
}

如上例,totalbyes 为 1270000,但 nBytes 始终为 6。有什么问题?感谢您的帮助。

【问题讨论】:

  • 看起来很奇怪。但可以肯定的是,您正在访问 API 不支持的 Lua 实现的私有成员。对于调试,显示这些值可能有意义,但否则我认为自定义代码不应该读取内部 Lua 结构。

标签: c++ lua


【解决方案1】:

/* 实际分配的总字节数 */ gettotalbytes(g) = (g)->totalbytes + (g)->GCdebt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-18
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 2013-06-19
    相关资源
    最近更新 更多