LuaBind绑定C标准库?

我在使用 luabind 绑定 lua 的某些函数时遇到了一些小问题。这些函数返回或带有 std:string 对象作为参数,而 c++ 最终得到的数据是垃圾,显然是因为 lua 不认识这种数据类型。我可以手动绑定 std:: 类作为我需要的东西,但我不得不想知道是否已经在 c 标准库中完成了这样的工作。我似乎找不到任何绑定库;有人知道这样的项目是否存在吗?

原文链接 https://stackoverflow.com/questions/6406361

点赞
stackoverflow用户734069
stackoverflow用户734069

Luabind已经自动转换Lua字符串和std::string(以及char *)之间的类型。所以你应该可以直接使用它们作为参数和/或返回值。如果无法这样做,那么可能是你的问题,也可能是Luabind的问题。

Luabind还有一个适配器,用于将符合STL风格容器的返回类型转换为Lua迭代器函数。因此,你可以在for循环中使用它,就像这样:

for object in CppFuncThatReturnsStdVector() do
    --对“object”进行一些操作
end

除此之外,我不知道有任何特定的努力来制作一个直接将标准C++库暴露给Lua的Luabind库。这也可能不是个好主意;Lua表已经涵盖了大部分你可能需要STL风格容器的需求。而且其他大多数的东西都可以由Lua自己的标准库处理。

2011-06-20 03:01:51