当前位置: 首页 > news >正文

服务器网站托管成都网页制作培训

服务器网站托管,成都网页制作培训,广告设计与制作的课程,免费可商用的cms我们今天在windows平台编译lua,生成 lua动态库,lua.exe,luac.exe 我把这个目录上传到giee,使用下面命令获取它: git clone gitgitee.com:jameschenbo/lua_c_application.git 目录结构如下: build.cmd 是编译脚本,在…

我们今天在windows平台编译lua,生成 lua动态库,lua.exe,luac.exe

我把这个目录上传到giee,使用下面命令获取它:

git clone git@gitee.com:jameschenbo/lua_c_application.git

目录结构如下:

build.cmd 是编译脚本,在执行前我们需要修改里面的gcc路径

我使用的是本地安装好的QT5的编译器

点击运行 build.cmd 等待编译结束,生成lua文件夹

lua/bin/lua.exe 解析器

lua/bin/luac.exe 编译器

lua/bin/lua54.dll 动态库 lua/doc

lua/include 帮助文档 在其他平台使用编译器需要包含的头文件

运行示例

进入example目录

运行build.cmd  同样需要更改里面GCC的路径

生成main.exe,执行如下:

c_call_main.c#include "lua/include/lua.h"
#include "lua/include/lualib.h"
#include "lua/include/lauxlib.h"static int clua_add(lua_State* L, int a, int b)
{int sum = 0;/* 函数入栈 */lua_getglobal(L, "add");/* 第一个函数参数入栈 */lua_pushnumber(L, a);/* 第二个函数参数入栈 */lua_pushnumber(L, b);/* 执行函数调用。2表示有两个函数形参,1表示add函数只有一个返回值,调用lua_call函数后lua自动出栈参数和函数,并将函数的执行结果入栈 *//** 执行函数调用* 2表示lua脚本中add函数需要输入两个函数参数* 1表示lua脚本中add函数有一个返回值* 执行完函数调用后,lua自动出栈函数和参数*/lua_call(L, 2, 1);/** 得到函数add函数执行结果* -1表示最后一个返回值,因为lua的函数可以返回多个值的。*/sum = lua_tonumber(L, -1);/* 出栈一个数据。此时栈中存的是add函数的执行结果,所以需要出栈 */lua_pop(L, 1);return sum;
}
/*** 调用lua 函数,传递参数并获取返回值* lua_script/add.lua*/
void example_add(void)
{int sum = 0;lua_State* L;L = luaL_newstate();  /* 创建一个句柄 */luaL_openlibs(L);     /* 打开lua库 */#if 1if(luaL_dofile(L, "./lua_script/add.lua"))  /* 从lua脚本文件 中加载lua脚本语句 */{printf(" load lua script file error! \r\n");return;}
#elseif(luaL_dostring(L, (const char *)"function add(a, b) return a + b end"))  /* 从字符串中加载lua脚本语句 */{printf(" LUA语句有误!\r\n");return -1;}
#endifsum = clua_add(L, 10, 20);printf(" sum = %d \r\n", sum);lua_close(L);  /* 关闭lua,清理内存 */
}void load_config_file(lua_State* L, const char* fname, int *w, int *h)
{if(luaL_loadfile(L, fname) || lua_pcall(L, 0, 0,0)) {printf("load config file error\n");}//1.读变量配置//入栈操作,和出栈操作要对应lua_getglobal(L, "width");lua_getglobal(L, "height");//出栈操作,先压栈的,后出栈if(!lua_isnumber(L, -2)) {printf("width should be number!\n");}if(!lua_isnumber(L, -1)) {printf("height should be number!\n");}//转换数据类型*w = lua_tointeger(L, -2);*h = lua_tointeger(L, -1);//清空栈lua_settop(L, 0);//2.读 table 配置lua_getglobal(L, "sys_table_cfg");//入栈,指定位置lua_getfield(L, -1, "sex");lua_getfield(L, -2, "age");lua_getfield(L, -3, "port");lua_getfield(L, -4, "baud");lua_getfield(L, -5, "isSave");//出栈,和入栈顺序相反printf("sys_table_cfg:\n\n");printf("sex:%s\n",lua_tostring(L, -5));printf("age:%d\n",lua_tointeger(L, -4));printf("port:%s\n",lua_tostring(L, -3));printf("baud:%d\n",lua_tointeger(L, -2));printf("isSave:%d\n",lua_tointeger(L, -1));printf("\n");lua_settop(L, 0);
}
/*** 读取lua格式的配置文件* lua_script/config.lua* 配置文件有全局变量,有表*/
void example_config_file(void)
{lua_State *L = luaL_newstate();luaL_openlibs(L);int w, h;load_config_file(L, "./lua_script/config.lua", &w, &h);printf("width=%d,height=%d\n", w, h);
}
int main(int argc, char* argv[])
{//下面是两个例子选择一个编译执行//// example_add();  //调用lua函数例子,传参和接收返回值example_config_file();//读取lua脚本编写的配置文件例子getchar();return 0;
}		

lua当配置文件使用的脚本 config.lua

--define windows size
print "my application config file (*.lua)!"width = 100height = 80sys_table_cfg = {sex = "male",age = 18,port = "COM1",baud = 9600,isSave = 0
}

lua函数调用脚本 add.lua

function add(a, b) return a + b + 10
end

http://www.yayakq.cn/news/426874/

相关文章:

  • 做影视网站对服务器要求wordpress 主页布局
  • 上海备案证查询网站查询网站查询谷歌浏览器中文手机版
  • 案例网站有哪些建个商城网站需要多少钱
  • 网站毕业设计选题营销加盟网站建设
  • 建设工程材料信息价查什么网站智慧团建注册入口
  • 美工网站设计网络营销典型企业
  • 网站做网站反向代理违法安徽有几家做网站
  • 绿色电器公司网站psd模板网站优化的方式有哪些
  • 安徽建筑大学学工在线网站网站建设论文 php
  • 网站后台设计培训学校外包加工平台
  • 千户微建站平台wordpress 中文 模板下载
  • wordpress仿站价格响应式网站模板怎么做
  • 宁波做网站优化的公司移动分销系统代理
  • php+mysql网站开发技术与典型案例导航【源代码】广州网站建设网站推广
  • 龙华高端网站设计中山模板建站公司
  • 做网站桂林wordpress优化提速
  • 住房和城乡建设部网站行标编程是学什么东西的
  • 建设官方网站怎么登录全国企业工商信息查询官网
  • 建设网站需要几部分优化营商环境心得体会1000字
  • 封装系统如何做自己的网站重庆网络营销网站建设销售
  • 潍坊最早做网站的公司wordpress添加logo
  • 张店网站建设价网站备案查询不了
  • 做公众号封面网站2023北京又开始核酸了吗今天
  • 东莞皮具网站建设网络舆情监测适合女生嘛
  • 上海网站推广模板宁波seo外包公司
  • 贵阳搜索玩的网站菜鸟教程网站怎么做
  • 有哪些做兼职的网站萧县做网站
  • 百度的合作网站有哪些wordpress 询价记录
  • 网站建设方案新闻做网站费用分摊入什么科目
  • 没有网站如何做SEO推广有用吗做社区网站怎么做