【发布时间】:2011-09-12 22:28:21
【问题描述】:
假设我有一个 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文件中的语法有问题,但我觉得不是……)
【问题讨论】:
标签: c++ function lua call luabind