Lua文件里面是有两个函数的,然后用cpp文件调用代码,最后,还有很关键的一步,编译时,我们需要加上附加选项: g++ main.cpp -o main -llua -ldl。过程看起来简单,还是需要动手操作的。
首先你要安装lua的dev,安装很简单:
yum install lua-devel
即可,很多Linux系统自带Lua但是没有dev,有点小坑。
下面是Lua文件,里面就两个函数:
function add(a, b)
return a + b
end
function hello()
print("Hello Lua!!!")
end
立即学习“C++免费学习笔记(深入)”;
之后是cpp文件的调用代码:
#include#include using std::cout; using std::endl; using std::string; //extern的意义,将下面文件当成C风格文件使用 extern "C" { #include #include #include } int main() { //创建环境 lua_State *L = luaL_newstate(); if(L == NULL) { cout << "State error" << endl; return -1; } //加载库 luaL_openlibs(L); const string file = "func.lua"; // 加载文件 int ret = luaL_dofile(L, file.c_str()); if(ret) { cout << "dofile error" << endl; return -1; } //hello函数没有参数,直接调用 lua_getglobal(L, "hello"); lua_pcall(L, 0, 0, 0); //三个0含义,0实参,0返回值,0自定义错误处理 lua_getglobal(L, "add"); //向add函数传入两个参数,这里直接传了1和2,传变量也ok lua_pushnumber(L, 1); lua_pushnumber(L, 2); lua_pcall(L,2,1,0); //返回值被放在-1的位置上 cout << lua_tonumber(L, -1) << endl; lua_close(L); return 0; }
最后,还有很关键的一步,编译时,我们需要加上附加选项:
g++ main.cpp -o main -llua -ldl
TURF(开源)权限定制管理系统(以下简称“TURF系统”),是蓝水工作室推出的一套基于软件边界设计理念研发的具有可定制性的权限管理系统。TURF系统充分考虑了易用性,将配置、设定等操作进行了图形化设计,完全在web界面实现,程序员只需在所要控制的程序中简单调用一个函数,即可实现严格的程序权限管控,管控力度除可达到文件级别外,还可达到代码级别,即可精确控制到
看看结果:

大功告成
相关推荐:










