extern "C"
{
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
}
// C返回给Lua用的函数
static int getHello(lua_State *L)
{
lua_pushstring(L, "hello");
return 1;
}
// 注册给Lua调用的函数
static int getHelloFun(lua_State *L)
{
// 返回一个C函数
lua_pushcfunction(L, getHello);
return 1;
}
int main()
{
// 初始化Lua
lua_State *L = lua_open();
luaL_openlibs(L);
// 注册getHelloFun
lua_pushcfunction(L, getHelloFun);
lua_setglobal(L, "getHelloFun");
// 运行Lua测试
luaL_dofile(L, "test_main.lua");
lua_close(L);
return 0;
}
/* test_main.lua
function Test()
local fun = getHelloFun();
local s = fun();
print(s);
end
Test();
*/