c 使用lua 示例
#include <stdio.h>
#include <string.h>
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
static int say_hello(lua_State *L)
{
const char *s = lua_tostring(L,1);
printf("hell,%s\n",s);
return 0;
}
int main(void)
{
lua_State *L = luaL_newstate();;
luaL_openlibs(L);
//写入全局变量
lua_pushnumber( L, 211 );
lua_setglobal( L, "hp" );
//lua_pop(L,2);
//读取全局变量
lua_getglobal( L, "hp" );
int res = lua_tointeger(L, -1);
printf("%d\n",res);
lua_pop(L,1);
//设置一个有名称的table
lua_newtable(L);
lua_pushinteger(L, 10025);
lua_setfield(L, 1, "id");
lua_pushinteger(L, 3);
lua_setfield(L, 1, "good_count");
lua_pushinteger(L, 100);
lua_setfield(L, 1, "count");
lua_pushinteger(L, 15);
lua_setfield(L, 1, "outlet_count");
lua_setglobal(L,"customer_table");
//读取table中的值
int result;
lua_getglobal(L,"customer_table");
lua_pushstring(L,"count");
lua_gettable(L,-2);
result = lua_tointeger(L,-1);
printf("%d\n",result);
lua_pop(L,1);
lua_pushstring(L,"outlet_count");
lua_gettable(L,-2);
result = lua_tointeger(L,-1);
printf("%d\n",result);
lua_pop(L,1);
//函数相互调用
lua_register(L,"say_hello",say_hello);
const char* dosomething = " \
function dosomething(words)\
say_hello(words) \
end \
";
luaL_dostring(L,dosomething);
lua_getglobal(L, "dosomething");
lua_pushstring(L,"yexuqiang");
res = lua_pcall(L, 1, 1,0);
printf("res:%d\n",res);
lua_close(L);
return 0;
}
c 使用lua 示例的更多相关文章
- Lua开发环境配置
Lua(英语发音:/ˈluːə/)程序设计语言是一个简洁.轻量.可扩展的脚本语言,是葡萄牙语中“Luna”(月亮)的意思. Lua is a powerful, fast, lightweight, ...
- 【精选】Nginx模块Lua-Nginx-Module学习笔记(二)Lua指令详解(Directives)
源码地址:https://github.com/Tinywan/Lua-Nginx-Redis Nginx与Lua编写脚本的基本构建块是指令. 指令用于指定何时运行用户Lua代码以及如何使用结果. 下 ...
- 用 Lua 控制 MIDI 合成器来播放自定义格式乐谱
用 Lua 控制 MIDI 合成器来播放自定义格式乐谱 作者: FreeBlues 最新: https://www.cnblogs.com/freeblues/p/9936844.html 说明: 本 ...
- Nginx模块Lua-Nginx-Module学习笔记(二)Lua指令详解(Directives)
源码地址:https://github.com/Tinywan/Lua-Nginx-Redis Nginx与Lua编写脚本的基本构建块是指令. 指令用于指定何时运行用户Lua代码以及如何使用结果. 下 ...
- lua工具库penlight--08额外的库(二)
执行一系列的参数 类型说明符也可以 是' ('MIN '..' MAX)' 的形式. local lapp = require 'pl.lapp' local args = lapp [[ Setti ...
- Lua与C交换
1.C调用Lua函数 (1) 首先要进行Lua的初始化,这个主要是lua_open和luaL_openlibs函数 (2)然后是解析并编译lua的代码,这个主要是luaL_dofile函数 (3) ...
- 考勤的lua脚本
ngx.header.content_type = "text/plain;charset=utf-8" local cjson = require "cjson&quo ...
- 转载一篇将C/C++ 与lua混合使用入门讲的比较好的文章
转自 http://www.open-open.com/home/space-6246-do-blog-id-1426.html Lua是一个嵌入式的脚本语言,它不仅可以单独使用还能与其它语言混合调用 ...
- 转载:lua和c的交互
extern "C" { #include "lua.h" #include "lualib.h" #include "lauxl ...
随机推荐
- webpack 学习过程
什么是WebPack,为什么要使用它? 为什要使用WebPack 现今的很多网页其实可以看做是功能丰富的应用,它们拥有着复杂的JavaScript代码和一大堆依赖包.为了简化开发的复杂度,前端社区涌现 ...
- OSCP-FristiLeaks
环境搭建 靶机下载: https://www.vulnhub.com/entry/fristileaks-13,133/ 安装:直接用virtualbox打开 网络桥接 找到靶机IP 虚拟机启动就显示 ...
- shell中$(( ))、$( )、``与${ }的区别详解
命令替换在bash中,$( )与` `(反引号)都是用来作命令替换的.命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行 [python@m ...
- stackstorm docker中配置ssh免密码登录方式
在docker中配置st2的ssh登录方式折腾了好久,今天终于彻底搞懂了如何重启容器后也不丢失之前的配置,只要容器起来后就可以正常ssh 执行st2中的remote-shell-script 和rem ...
- MySQL之concat、concat_ws、group_concat
concat(str1, str2, ...) 返回结果为连接一起的字符串. concat_ws(separator, str1, str2, ...) 同concat,但是可以指定连接符,sepa ...
- manjaro 常用软件安装
1.搜狗输入法 sudo pacman -S fcitx-sogoupinyin fcitx-configtool fcitx-im yay -Sa fcitx-qt4 sudo vim /etc/e ...
- C#工具:ASP.net 调用SQLserver帮助类
一.正常调用 1.创建DBHelper帮助类 2.复制以下代码到类中 using System; using System.Collections.Generic; using System.Data ...
- mysql中给查询结果添加序号列
今天同事给了一个小需求,从一个存有不定数量坐标数据的表(map_trace)中每隔20条取一条.最后写了下面这条SQL: select * from (select @n:=@n+1 as n, a. ...
- Android 中WebView中video视频自动播放
转载于https://juejin.im/post/5d5ac7eb51882562744fae37 如果有使用过Android的WebView 播放视频的伙伴们一定会发现, 在点开视频网页的时候并没 ...
- @Valid与@Validated
Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR- ...