2018年2月1日

lua与c之间交互详解(二)

摘要: 本篇主要讲解下c如何调用Lua的,即c作为宿主语言,Lua为附加语言。c和Lua之间是通过Lua堆栈交互的,基本流程是:把元素入栈——从栈中弹出元素——处理——把结果入栈。关于Lua堆栈介绍以及Lua如何调用c参考其他两篇。 1. 加载运行Lua脚本 通过luaL_newstate()创建一个状态机 阅读全文

posted @ 2018-02-01 20:08 RainRill 阅读(2939) 评论(1) 推荐(2) 编辑

lua与c之间交互详解(三)

摘要: 本篇主要讲解Lua是如何调用c的,Lua是宿主语言,c是附加语言,关于c如何调用Lua参考其他两篇。Lua调用c有几种不同方式,这里只讲解最常用的一种:将c模块编译成so库,然后供Lua调用。 约定:c模块需提供luaopen_xxx接口,xxx与文件名必须一致,比如"mylib";还需提供一个注册 阅读全文

posted @ 2018-02-01 19:07 RainRill 阅读(2767) 评论(0) 推荐(0) 编辑

lua与c之间交互详解(一)

摘要: lua与c之间交互是通过“lua堆栈”通信的。不管是lua调用c还是c调用lua,都是通过操作lua堆栈实现的。顾名思义,lua堆栈也满足后进先出的特点,入栈/出栈都围绕栈顶进行的。与通用的栈不同的是,这个虚拟栈每个位置都对应一个索引,可以通过索引操作指定位置的数据。1代表栈底,向栈顶依次递增;-1 阅读全文

posted @ 2018-02-01 17:59 RainRill 阅读(9034) 评论(0) 推荐(2) 编辑

导航