在C中跟踪Lua表

Tom*_*ell 4 c c++ lua swig

我有C++对象,我有Lua对象/表.(还有SWIG C++绑定.)

我需要做的是关联这两个对象,以便我说

CObject* o1 = getObject();
o1->Update();
Run Code Online (Sandbox Code Playgroud)

它会做等效的Lua:

myluatable1.Update();
Run Code Online (Sandbox Code Playgroud)

到目前为止,我可以想象CObject :: Update将具有以下代码:

void CObject::Update(){
    // Acquire table.

    // ???

    // Do the following operations on the table.
    lua_getfield(L, -1, "Update");
    lua_pcall(L, 0, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)

我将如何存储/设置要使用的Lua表,以及 // ???上面的内容以使Update调用工作?

Tom*_*ell 17

我不敢相信没有人注意到这一点!

http://www.lua.org/pil/27.3.2.html

Lua API的一部分,用于存储对lua对象和表的引用,并返回引用以存储在C结构中!