加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

指针 – 如何使用LuaJIT FFI创建指向现有数据的指针?

发布时间:2020-12-14 21:46:31 所属栏目:大数据 来源:网络整理
导读:我知道有一些使用LuaJIT FFI创建指针的例子,但其中大部分并未指向现有数据.其中一个例子就是: How to pass a pointer to LuaJIT ffi to be used as out argument? 我无法成功做的一件事是创建一个指向现有值的指针.据我所知,为了得到一个指针类型,我必须知
我知道有一些使用LuaJIT FFI创建指针的例子,但其中大部分并未指向现有数据.其中一个例子就是:
How to pass a pointer to LuaJIT ffi to be used as out argument?

我无法成功做的一件事是创建一个指向现有值的指针.据我所知,为了得到一个指针类型,我必须知道我想在将来的某个时刻指向它,如:

local vao = ffi.new("GLuint[1]")
gl.GenVertexArrays(1,vao)
gl.BindVertexArray(vao[0])

在这里,我知道glGenVertexArrays需要一个指向vao的指针,所以我将它指定为GLuint [1].在C中,我会做类似以下的事情:

GLuint vao;
glGenVertexArrays(1,&vao);
glBindVertexArray(vao);

在这里,我不知道我需要一个指向vao的指针,所以我可以正常指定它.

换句话说,有没有办法获取现有值的地址或创建指针?在创建它之前,我是否必须预见到我将使用该值做什么?

谢谢!

解决方法

没有办法在FFI中获得指向cdata对象的指针.

我记得在LuaJIT邮件列表中读到这是为了一些优化工作而故意做的,虽然我在档案中找不到确切的消息.

到目前为止,我还没有需要获取cdata对象的指针; LuaJIT通过引用引用cdata(类似于表),类型[1]技巧适用于out参数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读