我有这个C结构:
typedef struct { double x, y; } point_t;
我需要向Lua发送一个point_t
变量并更改其值,然后将其返回给C.
我遇到的第一个问题是在Lua中施放它。怎么办呢?
的main.c
point_t ponto;
ponto.x = 0; ponto.y = 0;
lua_getglobal(L, "jit"); //Get variavel with function
lua_pushlightuserdata(L, &ponto);
lua_pcall(L, 1, 1, 0);
point_t *pontop = (point_t*)lua_touserdata(L, -1);
test.lua
jit = function(num)
local ffi = require("ffi")
ffi.cdef[[
typedef struct { double x, y; } point_t;
]]
local point
local mt = {}
point = ffi.metatype("point_t", mt)
local a = point(3, 4)
print(a.x, a.y)
b = ffi.cast("point_t*",num)
b.x = 10
b.y = 20
return b
end
本地变量a
是使用point_t
类型创建的,如何将b
转换为像a
一样使用它?