LuaJIT如何用FFI包装C数据类型?
假设我有以下LuaJIT代码:LuaJIT如何用FFI包装C数据类型?,c,lua,ffi,luajit,cross-language,C,Lua,Ffi,Luajit,Cross Language,假设我有以下LuaJIT代码: local ffi = require "ffi" ffi.cdef[[ typedef struct { int num; } container; ]] local a = ffi.new("container") a.num = 10 library.doSomethingTo(a) 假设library.doSomethingTo由以下C代码定义: int doSomethingDo(lua_State *L) { //code he
local ffi = require "ffi"
ffi.cdef[[
typedef struct { int num; } container;
]]
local a = ffi.new("container")
a.num = 10
library.doSomethingTo(a)
假设library.doSomethingTo
由以下C代码定义:
int doSomethingDo(lua_State *L) {
//code here
}
在
//这里编码
需要什么代码才能生成库。doSomethingTo(a)
print 10?所以,概括一下:你想获取一个通过FFI创建的对象,并通过Lua API与之对话。@Nicolas我想是吧?我没有足够的知识来确认这是对我问题的准确总结。您也可以将C导出函数与ffi.cdef
一起使用,但如果您想使用标准Lua C函数,则需要以某种方式将参数解析为LuaVM