指针 – 如何使用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参数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |