从 C++ 端如何加载多个 Lua 模块

在我的应用程序中,我想在加载 Lua 脚本之前加载 Lua 中的一个基本库。

示例:

testLib.lua

A = 5
B = 6

function foo(a,b)
    return a+b
end

test.lua

c = foo(A,B)

在我的 C++ 模块中,我想做类似这样的事情

// 加载库
luaL_loadbuffer(L, libText, libSize, "testLib");
// 运行它以便全局变量已知
lua_pcall(L,0,0,0);
// 加载使用库函数和变量的主要脚本
luaL_loadbuffer(L, progText, progSize, "testLib");
// 运行它
lua_pcall(L,0,0,0);

这里我会得到一个错误,表明函数 'foo' 是未知的

有没有一种方法在同一 Lua 状态中加载多个 Lua 模块?

提前感谢您的帮助

原文链接 https://stackoverflow.com/questions/9411809

点赞
stackoverflow用户2282430
stackoverflow用户2282430

你需要先绑定函数foo。

[http://lua-users.org/wiki/BindingCodeToLua](http://lua-users.org/wiki/BindingCodeToLua)

展示了如何在一个绑定C语言数学函数的例子中进行绑定。

2012-02-23 11:30:55