C++与lua交互之C++访问lua】的更多相关文章

假设lua中: name="gzw" id=17010805 sex=man tab={ num=100, str="hello" } foo_one=function() print("不带参数的foo()被调用了") end foo_two=function(num) print("num=",num) return num end 接下来要在C++中调用lua. 首先看调用全局变量: int main() { lua_S…
项目开发的脚本层用的是Lua,引擎用的是C++.但是经理不给开放引擎层的代码.刚好最近项目空闲,安排了学习C++跟Lua的通信. 一.C++与Lua数据交互 数据交互主要是通过C API来实现 首先,要加入Lua的头文件 extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib" } 也可以用#include "lua.hpp"代…
本来这些文章都是在我的个人网站www.zhangyi.studio,目前处在备案状态,暂时访问不了,所以搬到这边.  最近这两天需要弄清楚C++和lua间相互调用和数据传递,废话不多说,直接上过程. 首先是环境环境,Linux(Debian),安装lua,注意需要管理员权限. 安装完后输入lua或者lua -v 严重是否安装成功以及安装的版本,当然,有了lua运行环境还不够我们还需要安装lua开发库既然我们安装的是lua5.2那么开发库同样安装成5.2版本,命令如下: -dev 当然,lua的环…
硬件 http://zhan.renren.com/h5/entry/3602888498044209332 GL-iNet 1 首先安装 webserver之lighttpd  ,openwrt自带的是uhttpd http://www.voidcn.com/article/p-zqbwgqwy-vy.html 1-1安装过程简略 1-2配置 Lighttpd默认页面 http://localhost/index.lighttpd.html 写lighttpd的配置文件lighttpd.con…
引言 通过前几篇,我们已经对Lua的C API有了一定的了解,如lua_push*.lua_is*.lua_to*等等.用C++调用Lua数据时,我们主要运用lua_getglobal与lua_push*配合以达到目的.现在我们来试试用Lua调用C++数据. C++数据类型映射到Lua C++中数据类型有这么几种:1.内建的int.float等:2.指针,如void *.int *.int (*fun)(int, int)等:3.用户自定义的class.strcut等.Lua中C API支持操作…
通过上一篇的热身,我们对C++调用lua变量有了一个认识,现在让我们再深入一点,去探索一下如何调用lua的函数.表. Lua与宿主通讯的关键--栈 lua是个动态脚本语言,它的数据类型如何映射到C++这种静态类型语言中?lua是有GC机制的,这与C++手动管理内存相悖.如何解决这些问题呢?lua用一个抽象的栈与宿主语言交互,栈中的每一条记录都可以保存lua值.无论何时,我们想要从lua请求一个值,调用lua,被请求的值将会被压入栈. 栈是由lua来管理的,垃圾回收器知道哪个值正在被C使用(如果从…
上一篇我们搭建好了整个的项目环境,现在,我们一起探索一下如何将lua寄宿到C++中. 宿主的实现 我们在LuaWithCPPTest项目下,查看Source.cpp代码如下: #include <iostream> #include <fstream> #include <string> using namespace std;   extern "C" { #include <lua.h> #include <lauxlib.h&…
引言 之前做手游项目时,客户端用lua做脚本,基本所有游戏逻辑都用它完成,玩起来有点不爽,感觉"太重"了.而我又比较偏服务端这边(仅有C++),所以热情不高.最近,加入了一个端游项目,客户端和服务器都用了lua,各种玩法是让我眼界大开.在此,写下自己的心得与体会,希望能与大家共同探讨进步. 环境搭建 lua官网下载lua源代码,我们将用它来编译静态库,解释器,以及动态库. CMake官网下载最新的安装包,我们将用它来作为搭建solution的工具. 集成开发环境为VS2012,整个的编…
我先来吐槽一下我们这个项目. 我是做手机游戏的, cocos2dx引擎, lua编码. 这本来是一件很欢快的事情, 因为不用接触C++. C++写久了的人写lua, 就会感觉任督二脉被打通了, 代码写起来都不用太多考虑, 就像涉世太深的人吹起牛逼肆无忌惮, 总是可以自圆其说. 然而, 事与愿违, 我们客户端的兄弟仍然要编写大量C++代码, 其原因是, 配置文件, 数据结构统统由后端决定, 而后端没有人会lua, 因此数据全部放在C++, 客户端每一次存取数据都会接触到C++. 然后, 就出现了今…
这是第二篇 Cocos 2d-X Lua 游戏添加苹果内购(一) 图文详解准备流程 这是前面的第一篇,详细的说明了怎样添加内购项目以及填写银行信息提交以及沙盒测试员的添加使用以及需要我们注意的东西,结果,被移除首页了!前面第一篇的内容是这篇的基础,前面那些不弄好,下面的商品信息你是请求不到的,这点需要大家特别注意...有需要前面提到的内容的孩子可以点击链接进去自己看看!! 这篇就具体的总结我们Lua和OC交互的内容以及内购具体的代码以及结果的测试说明: 内购部分OC的代码实现 先自己总结一下整个…