0

私が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ファイルの構文に問題があるようですが、そうではないと思います...)

4

1 に答える 1

2

luaL_dofileここではなく、電話をかけたいと思うかもしれませんluaL_loadfile

于 2011-06-11T04:58:10.397 に答える