У меня есть эта структура C:
typedef struct { double x, y; } point_t;
и мне нужно отправить point_t
переменная в Lua и измените ее значения, а затем верните его в C.
Первая проблема, с которой я столкнулся — это наложить ее на Луа. Как это можно сделать?
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
?
Задача ещё не решена.