c++ - 在 C 中跟踪 Lua 表

标签 c++ c lua swig

我有 C++ 对象并且我有 Lua对象/表。 (还有 SWIG C++ 绑定(bind)。)

我需要做的是关联这两个对象,这样如果我说

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 调用起作用?

最佳答案

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

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

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

关于c++ - 在 C 中跟踪 Lua 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1973788/

相关文章:

在 while 循环中计数 3 秒

c - 为什么局部变量可以作为函数的返回值?

c - Lua 脚本转 C++ 代码

lua - 你能在 Lua 中创建匿名代码块吗?

c++ - 警告 : address of local variable 'angles' returned [-Wreturn-local-addr]

c++ - 对于 C++,是否有两次从控制台中的 txt 文件重定向(cin)输入?

c - 通过函数更改时 main 中数组中的值不更新

c++ - 如何为每个宏参数声明类型?

c++ - 为什么 WS_TABSTOP 不适用于丰富的编辑控件?

input - Lua:将用户数据读取为数字/将用户数据与数字进行比较