如何从 C 调用 Lua 函数?
从C调用Lua函数需要一系列的步骤和对Lua库函数的掌握。Lua提供了几个库函数,当我们想从C或相反的地方调用Lua函数时,我们可以使用它们。
从C调用Lua函数的一些最常用的Lua库函数是-
luaL_dofile(L,"myFile.lua");
lua_getglobal(L,"添加");
lua_pushnumber(L,a);
以及更多。
当我们从C调用Lua函数时,我们将使用这些函数。
第一步是关闭Lua解释器,为此我们需要用C编写代码。
示例
考虑下面显示的例子-
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
int main(int argc, char *argv[]) {
lua_State* L;
L = luaL_newstate();
luaL_openlibs(L);
lua_close(L);
printf( "按回车退出..." );
getchar();
return 0;
}现在,我们只需要调用luaL_dofile(L,"myFile.lua");我们将在其中编写一些将从C代码调用的Lua代码的文件的函数。
考虑下面显示的代码,写在myFile.lua-
add = function(a,b) return a + b end
现在将调用上述Lua函数的C文件看起来像这样-
int luaAdd(lua_State* L, int a, int b) {
//将add函数压入lua栈顶
lua_getglobal(L, "add");
//将第一个参数压入lua栈顶
lua_pushnumber(L, a);
//将第二个参数压入lua栈顶
lua_pushnumber(L, b);
//使用2个参数调用函数,返回1个结果
lua_call(L, 2, 1);
//得到结果
int sum = (int)lua_tointeger(L, -1);
lua_pop(L, 1);
return sum;
}当我们luaAdd()在C中调用这个函数时,输出将是:(对于a=2,b=3)
5
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短