gpt4 book ai didi

c++ - 在 C++ 中,使用 luabind,调用 lua 文件中定义的函数?

转载 作者:行者123 更新时间:2023-11-28 03:48:50 25 4
gpt4 key购买 nike

假设我有一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com