Estoy buscando integrar Lua en una aplicación C++ que estoy desarrollando. Mi intención es utilizar Lua para programar qué operación (es) ordenada (s) realizar para alguna entrada dada, es decir. recibe un nuevo elemento de trabajo en el programa C++, pasa los detalles al backend de Lua, Lua vuelve a llamar a C++ para llevar a cabo el trabajo necesario, devuelve los resultados finales.Cómo pasar una gran estructura de ida y vuelta entre C++ y Lua
La principal estructura de datos involucrada es una gran (aproximadamente 80+ miembros) struct
. Soy (muy) nuevo en Lua y no estoy seguro de cómo puedo pasarlo a mi aplicación de host y el estado de Lua incrustado.
Hasta ahora veo mis opciones como:
a) Empujar/Popping todos los miembros de datos individuales en la pila al cruzar a/de C++ y Lua (suena desordenado).
b) Construir una tabla y poblar con los valores, luego poner/cerrar la pila (un poco más limpio).
c) Pasarlo como userdata
(¿liviano/pesado?) (No estoy seguro de esto, y no estoy seguro si/cómo puedo acceder desde el lado Lua para consultar qué operaciones son necesarias).
Cualquier orientación sería muy apreciada.
Pude convertir los datos del usuario light a un objeto object-c. Me imagino que funcionaría igual para una estructura. –