В ролях C Struct в Lua / LuaJIT

У меня есть эта структура 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 ?

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]