繁体   English   中英

将C结构指针传递给lua脚本

[英]Passing C struct pointer to lua script

我想知道是否有一种方法可以将结构指针传递给lua脚本,并从lua到达其成员而无需复制(出于读写目的)。

因此,例如,是否有可能直接通过其指针覆盖结构成员?

(我正在使用luajit)

除了蒂姆的答案,您还可以轻松获取用户数据 您最终不会在Lua堆栈中得到数据的副本,您推送到Lua的只是一个指针。

Lua不了解此指针中的内容,是否仍然指向有效内存,或如何访问此指针中的任何对象,因此您必须自己在C中处理所有这些。我通常将指针发送至列表中的一个项目,因此,如果存在从列表中删除条目的风险,我首先在列表上进行迭代以验证指针(如果列表较短,则没什么大不了的)。 要在Lua中访问指针中的项,您需要在C中编写可从Lua调用的get / set函数。

首先,这是有关推送和检索lightuserdata的条目:

看到已经为luajit标记了它,您可以将轻量用户数据(如其他人所提到的)与FFI结合使用以直接访问结构成员,请参见此处的教程: http : //luajit.org/ext_ffi_tutorial.html

这样做的方法是使用lua用户数据。 这里有几个示例: link另一个link

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM