说我有一个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文件中的语法似乎有问题,但我不认为这是...)

最佳答案

您可能要在这里调用luaL_dofile而不是luaL_loadfile

关于c++ - 在C++中,使用luabind,调用lua文件中定义的函数吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6314136/

10-11 13:46