¿En C ++, usando la función de llamada LuAbind definida en el archivo LUA?
Pregunta
Digamos que tengo un archivo LUA:
--functions.lua
function testadd(a, b)
return a+b
end
¿Cómo usaría Luabind para cargar ese archivo y llamar a esa función, algo así como:
//test.cpp
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
#include <luabind/luabind.hpp>
#include <luabind/function.hpp>
int main() {
lua_State *myLuaState = lua_open();
luaL_openlibs(myLuaState);
luaL_loadfile(myLuaState, "functions.lua");
luabind::open(myLuaState);
int value = luabind::call_function<int>(myLuaState, "testadd", 2, 3);
lua_close(myLuaState);
}
Pero esto devuelve un error:Terminar llamado después de lanzar una instancia de 'Luabind :: Error' What (): Lua Error de tiempo de ejecución abortado
Entonces, ¿cuál es la sintaxis adecuada para hacer lo que quiero hacer? (Por el aspecto del error, parece ser un problema con la sintaxis en el archivo LUA, pero no creo que sea ...)
Solución
Probablemente quieras llamar luaL_dofile
en vez de luaL_loadfile
aquí.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow