• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Lua和C++的通信流程分解

    网上关于Lua的教程似乎还没有泛滥,最近刚好学习在Cocos2d-x使用Lua,当然了,我是写教程狂,我会分享我的学习心得的~
    (旁白:我噗~!每次你写东西我就要吐槽,你不累么= =)
     
    这是第一课,先来让Lua和C++认识一下,顺便让它们逛街吃饭牵小手什么的…
    (旁白:。。。吹,继续吹)

    1. Lua的堆栈和全局表

    我们来简单解释一下Lua的堆栈和全局表,堆栈大家应该会比较熟悉,它主要是用来让C++和Lua通信的,是的,它们并不认识对方,只能通过堆栈来沟通,就像写信一样。
    (旁白:它们不会用微信吗?!微信~!不知道?)
     
    Lua的全局表又是什么呢?可以想象成是一个map哈希表结构,比如Lua有一个变量:

    复制代码 代码如下:
    name = “hello”

    那么,全局表就存放了”name”和”hello”的对应关系,Lua可以通过name在全局表中查找到hello。应该是这样的~
    (旁白:应该= =!)

    2. Lua和C++的第一次通信

    现在来设计一个场景,C++在一次JavaScript开发者大会上看到Lua在演讲,于是C++被Lua深深吸引了。
    (旁白:JavaScript大会…那为毛是Lua在演讲~!)
     
    我们来看看这位美丽的Lua小姐长什么样:

    复制代码 代码如下:
    -- hello.lua 文件
    myName = "beauty girl"

    OK,一位简单又美丽Lua小姐。
    然后,C++想知道Lua叫什么名字,所以,它们必须要通信了。来看看通信流程:

    请注意红色数字,代表通信顺序:
    1) C++想获取Lua的myName字符串的值,所以它把myName放到Lua堆栈(栈顶),以便Lua能看到
    2) Lua从堆栈(栈顶)中获取myName,此时栈顶再次变为空
    3) Lua拿着这个myName去Lua全局表查找myName对应的字符串
    4) 全局表返回一个字符串”beauty girl”
    5) Lua把取得的“beauty girl”字符串放到堆栈(栈顶)
    6) C++可以从Lua堆栈中取得“beauty girl”,也就是这位美丽的Lua小姐的名字了~
    世界如此美妙,这是如此的简单。
    (旁白:好吧,这次不吐槽,确实简单…)
     
    不过,(旁白:我就知道~!我就知道事情没有那么简单!)这只是最简单的情况,实际上各种C++和Lua的操作比这要复杂多了,但基本原理是一样的。
    好的,趁着旁白还没有吐槽,我们要结束第一章了,希望能帮到大家。
    (旁白:说得好像我好喜欢抢戏似的,我像这样的人吗?= = 等等~!例子呢?Demo呢?)
     
    噢,Demo将在下一章介绍。
    (旁白:吊胃口。。。绝对是在吊胃口…你以为我会期待吗,魂淡…心好痒~!)

    您可能感兴趣的文章:
    • Lua中基本的数据类型、表达式与流程控制语句讲解
    • Lua中的控制结构(流程控制)简明总结
    • Lua基础教程之赋值语句、表达式、流程控制、函数学习笔记
    • Lua和C++的通信流程代码实例
    • Lua中的变量和流控制入门学习
    • Lua表达式和控制结构学习笔记
    • Lua中的基本语法、控制语句总结
    • Lua流程控制语句if else的使用示例
    上一篇:Cocos2d-x中调用Lua及HelloWorld.lua源码分解
    下一篇:Lua和C++的通信流程代码实例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Lua和C++的通信流程分解 Lua,和,C++,的,通信,流程,