我正在用SWIG将一些C++类导出到Lua。我宣布在这样的SWIG接口文件boost ::文件系统::路径:SWIG:Lua - 将C++实例作为lua函数参数传递
namespace boost
{
namespace filesystem
{
class path {};
}
}
现在我想打电话给在Lua中声明的函数,它应该采取一个boost ::文件系统::路径&为参数将其传递给另一个对象。我只需要能够将路径传递给对象。我不需要使用路径对象的任何功能。
function on_path_selected(the_path)
another_object:set_path(the_path)
end
我打算从C++中使用它的索引来调用Lua函数。
lua_rawgeti(L, LUA_REGISTRYINDEX, m_function_index);
lua_push[SOMETHING](L, path_object); // <-- HOW TO ?
lua_pcall(L,1,0,0)
问题:如何将boost :: filesystem :: path作为参数推送到Lua函数中?
谢谢你为这个伟大的答案。我目前正在挖掘生成的SWIG cpp源文件,我可以完全理解你所描述的正确性水平。是的,看起来要找到一种优雅的方式来实现这一目标将是一个很长的路要走。 非常感谢! 编辑:只要我看到按钮,就会将其标记为答案。 – damian 2012-02-26 19:57:58