【问题标题】:LuaBind bindings for c standard library?c标准库的LuaBind绑定?
【发布时间】:2011-06-20 02:33:33
【问题描述】:

我已经开始遇到使用 luabind 绑定到 lua 的某些功能的小问题。这些函数返回或接受 std:string 对象作为参数,而 c++ 最终得到的数据是垃圾,显然是因为 lua 无法识别数据类型。我可以根据需要手动绑定 std:: 类,但我想知道是否已经在任何地方为 c 标准库完成了。我似乎找不到任何类型的绑定库;有人知道这样的项目是否存在吗?

【问题讨论】:

  • 小点:std::string 不是 C 标准库的一部分。它是 C++ 标准库的一部分。

标签: c++ c lua


【解决方案1】:

Luabind 已经在 Lua 字符串和 std::string(以及 char*)之间进行了自动转换。所以你应该能够将它们用作参数和/或返回值就好了。如果您无法这样做,那么您或 Luabind 方面出现了问题。

Luabind 还具有an adapter 将符合 STL 样式容器的返回类型转换为 Lua 迭代器函数。因此,您可以像这样在 for 循环中使用它:

for object in CppFuncThatReturnsStdVector() do
    --Do something with "object"
end

除此之外,我不知道有什么特别的努力来制作一个直接向 Lua 公开标准 C++ 库的 Luabind 库。无论如何,这可能不是一个好主意。 Lua 表可以满足您对 STL 样式容器的大部分需求。大部分其他的东西都是 Lua 可以用它自己的标准库处理的。

【讨论】:

  • 我明白了。我不一定对绑定 功能 本身感兴趣,只是将这些类型公开为 Lua 可识别的类型。感谢您的快速回复。
猜你喜欢
  • 2017-09-01
  • 2020-07-21
  • 2021-04-03
  • 1970-01-01
  • 2011-08-11
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
  • 2011-11-20
相关资源
最近更新 更多