从C++传递字节数组到lua脚本方法

suy*_*uti 3 c++ lua arguments bytearray parameter-passing

如何从C++代码将字节数组作为参数传递给lua脚本方法?是否只允许int,float或string数据类型?另外我如何从lua脚本方法中检索字节数组?我将原始字节数组传递给脚本.它将解析并使用它.感谢名单.

Dav*_*ven 5

取决于你想做什么.Lua字符串是不可变的字节数组,所以如果它们很小,你可能最好只是简单地将字节数组转换为字符串lua_pushlstring并将其传递给它 - 是的,嵌入式\ 0支持并且工作正常.但是因为它们是不可变的,所以每次想要修改它时,Lua最终会复制字符串,因此它可能不适合您的要求.

其他选择是:

  • 在C++字节数组和Lua数组(即数字表)之间来回复制数据.这在内存中相当昂贵,但可能是最简单的方法.

  • 在lightuserdata中包装C++字节数组并提供Lua绑定以允许您直接访问它.这是最有效的,但代码相当多.