【发布时间】:2013-12-07 13:15:51
【问题描述】:
我有一个关于在 LuaInterface 中访问用户数据类型的问题。当我将 C# 字典传递给 Lua 并尝试使用 ipairs 对其进行迭代时,我收到一个错误,因为 ipairs 需要一个表而不是 userdata 对象。
我想一种解决方案是在将 Dictionary 类型传递给 Lua 之前将其转换为 LuaTable 类型,但我想将 userdata 类型用于其中的一种用途是将 Dictionary 对象引入 Lua 并更新customType 对象并在 Lua 中调用它们的方法。我不知道这是否可能,但我很确定如果我将该 Dictionary 转换为字符串和整数的 LuaTable,我将失去任何直接与 Lua 中的 customType 交互的机会。
我在网上查找了有关在 Lua 中使用 userdata 的信息,但我发现了几个通过 C/C++ 与 Lua 接口的示例以及我不太了解的堆栈。此外,在某些情况下使用 sizeof 方法,这在 c# 中没有简单的替代方法。有人可以给我一些指示吗?关于 C 中用户定义类型的 PIL 部分也没有太大帮助。
【问题讨论】:
-
从 C# Dictionary 构建 Lua 表的示例:stackoverflow.com/a/3050730/1150918 使用 C API 构建 Lua 表非常简单。一个新的例子:stackoverflow.com/a/20148091/1150918
-
@Kamiccolo,复制字典和迭代原文不一样
标签: c# dictionary lua luainterface lua-userdata