/********************************************C++ main.cpp***************************************************/
#include <iostream>
#include <stdio.h>#include <stdlib.h>
#include "lua.hpp"
using namespace std;
int A(lua_State *L)
{
cout << "C A" << endl;
lua_pushstring(L, "A");
return 1;
}
int B(lua_State *L)
{
cout << "C B" << endl;
lua_pushstring(L, "B");
return 1;
}
luaL_Reg apis[] = {
{"A", A},
{"B", B},
{NULL, NULL},
};
LUALIB_API int luaopen_my_api(lua_State *L)
{
luaL_newlib(L, apis);
return 1;
}
int main()
{
lua_State *L = luaL_newstate();
luaL_openlibs(L);
luaL_requiref(L, "apis", luaopen_my_api, 0);
if (0 != luaL_dofile(L, "main.lua"))
{
cout << lua_tostring(L, -1) << endl;
}
return 0;
}
--Lua main.lua
api = require("apis")
api.A();
api.B()