В C ++, используя luabind, вызвать функцию, определенную в файле lua? - PullRequest
0 голосов
/ 11 июня 2011

Скажите, у меня есть файл lua:

--functions.lua
function testadd(a, b) 
    return a+b
end

Как бы я использовал luabind для загрузки этого файла и вызова этой функции - что-то вроде:

//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);
}

Но это возвращает ошибку: прекращение вызова после создания экземпляра luabind :: error what (): ошибка времени выполнения lua Отменено

Итак, каков правильный синтаксис для выполнения того, что я хочу сделать? (Судя по ошибкам, это похоже на проблему с синтаксисом в файле lua, но я не думаю, что это ...)

1 Ответ

2 голосов
/ 11 июня 2011

Вы, вероятно, хотите позвонить luaL_dofile вместо luaL_loadfile здесь.

...