【发布时间】:2009-12-29 09:51:07
【问题描述】:
我有 C++ 对象和Lua 对象/表。 (还有SWIG C++ 绑定。)
我需要做的是将这两个对象关联起来,这样如果我说的话
CObject* o1 = getObject();
o1->Update();
它将执行等效的 Lua:
myluatable1.Update();
到目前为止,我可以想象 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);
}
我将如何存储/设置要使用的 Lua 表,以及上面的 // ??? 中的哪些内容可以使 Update 调用正常工作?
【问题讨论】:
-
可以为 c++ 对象分配一个整数 id,并将关联表存储在全局 lau 表中,即 globaltable[tableID] = associatedTable?