Lua已经为很多人所熟知了,我也用了快一年的Lua了。

Lua的优点众所周知:短小、精悍、高效、可移植性好。有人喜欢拿Lua和JS、Python等脚本语言比较,其实是没有看重Lua独一无二的神奇的地方:在做C/C++脚本接口的时候,Lua十分方便,代价很小。通过Lua_thinker或者tolua等工具库进行导出c++类和函数,那就更轻松了,这一点,换其他任何语言都没有这么简单方便,Lua可谓无可替代。

Lua流行的起源在游戏,现在很多专业软件也大量支持Lua,比如PhotoShope等等。从我自己的使用经验来看,我总结Lua无可替代的场景:

1、对运行性能要求很高,因而一般都是c/c++编写的(专业软件、游戏等等);

2、业务逻辑不简单。

在这种场景下,由C/C++编写底层的支持库(数据读写、数据查找分析、数据处理转换、数据显示,等等),而上层的界面编排、交互设计、功能操作设计都由Lua代码完成;这样的设计就兼顾了高性能和业务的高灵活性。

最后,推荐几个我觉得很不错的lua工具库:

1、lua_thinker,仅仅两个文件,能方便地把函数、c++类导出到lua中;

2、qtLua,导出了qt常用的界面类,配合qt制作的.ui界面文件,可以很方便地在lua中显示界面(我主要用于显示对话框);

3、luacom,用于直接调用COM组件。

转载于:https://www.cnblogs.com/zgrpmc/p/10510679.html

C/C++脚本接口神器:Lua相关推荐

  1. Lua脚本编程:Lua语言入门

    Lua是一门简单而强大的语言,其本身强大的扩展性使得这门语言在游戏设计等领域发挥着重要的作用.博主曾在Unity3D中使用过这门语言,并且针对Lua和Unity.C++等方面的内容进行了学习和讨论.最 ...

  2. BeanShell脚本接口之匿名类

    更多BeanShell内容请点击此处 BeanShell 最强大的功能之一就是具有编写 Java 接口脚本的能力.这个功能允许你编写脚本用作事件处理.监听以及其他 Java API 的组件.它也可以从 ...

  3. js脚本点击按钮显示文字_JSBOX脚本聊天神器

    聊天神器是一个基于JSBox的脚本 JSBox 是一个可以用来运行 JavaScript 脚本的 iOS 应用,你可以通过他来执行标准的 JavaScript 脚本 这种执行不是指跑在浏览器上,而是执 ...

  4. API-fox 接口神器

    1. 背景 作为互联网行业技术从业者,接口调试是必不可少的一项技能,通常我们都会选择使用 Postman 这类工具来进行接口调试,在接口调试方面 Postman 做的确实非常出色. 但是在整个软件开发 ...

  5. 接口神器:Apifox,究竟有多香!

    一.介绍 Apifox 是接口管理.开发.测试全流程集成工具,定位 Postman + Swagger + Mock + JMeter.通过一套系统.一份数据,解决多个系统之间的数据同步问题.只要定义 ...

  6. Selenium自动化测试-5.脚本录制神器Katalon Recorder

    ------·今天距2020年79天·------ 这是ITester软件测试小栈第57次推文 大家好 我是vivi小胖虎 作为一个低调逗逼的鼠标工程师 我当然想教你们平易近人的野路子啊 一顿操作只需 ...

  7. lua脚本加密,lua代码加密使用说明

    概述 xLua加密工具主要是一款Lua安全编译器,配置好xLua环境后,用几维提供的libluajit.a替换对应的默认文件,来实现对Lua文件的加密,加密后的Lua文件只能由几维提供的lua byt ...

  8. c调用lua脚本语言入门,Lua脚本语言入门及魔兽争霸中的Lua函数调用

    在这篇文章中,我想向大家介绍如何进行Lua程序设计及魔兽争霸中的Lua函数调用.我假设大家都学过至少一门编程语言,比如Basic或C,特别是C.因为Lua的***用途是在宿主程序中作为脚本使用的. L ...

  9. android 类似按键精灵脚本_Android拓展 lua实现类似按键精灵效果

    在android 上运行lua脚本,但是想用lua脚本的方式去实现自动按键的效果的话就得拓展lua关键字:我是直接在 AndroLua的基础上拓展的.很多人说为什么不用adb,adb只能实现简单的指令 ...

最新文章

  1. python 终端执行命令
  2. 沉浸式5G实景、AI+AR体验、机器人互动|5G+数智化展馆广州开幕
  3. org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 60
  4. SqlServer操作远程数据库
  5. word标题大纲级别_快速按标题层级把Word转Excel—附详细操作步骤
  6. jzoj3384-理工男【欧拉定理,gcd,数论】
  7. fedora 20 报错: Loaded plugins: langpacks, refresh-packagekit Error: Cannot retrieve metalink for...
  8. C# 各版本新增功能
  9. 3分钟看懂 Linux 磁盘划分
  10. The run destination 设备名称 is not valid for Running the scheme '项目名称'.
  11. 支付宝第三代理支付 - 支付宝客户端授权
  12. WPS文字目录怎么做?目录制作的三种方法
  13. 2022年中职网络空间安全国赛竞赛题解析仅代表自己的建议——2022年中职网络安全国赛竞赛试题1解析
  14. 东财《社会统计学》综合作业
  15. linux中i的英文单词,i的发音有几种
  16. html的css样式中表示后代选择器,css样式,后代选择器
  17. 游戏输入控制利器:DirectInput
  18. java 获取图片像素_转:java提取图片中的像素
  19. ssm基于Java web 的人人影视网站管理系统毕业设计源码290915
  20. 有什么JAVA 网站或者论坛资料丰富呢

热门文章

  1. Pandas知识点-比较操作
  2. 怎样用javascript给控件赋值,使在服务器端得到此控件的值?或怎样将前台的(或js)中的值传递到后台
  3. 《scikit-learn》随机森林之深入学习
  4. 漫步线性代数九——求Ax=0和Ax=b
  5. Python中list(列表)
  6. OpenFeign, Zuul, Gateway相互不兼容的问题总结
  7. NPL之如何使用Glove--词向量转化
  8. python功能模块之psutil_1.python系统性能信息模块之psutil模块
  9. 浏览器怎么扫描二维码_让你的chrome浏览器开启自动翻译,浏览任何语言不是梦...
  10. 一种二叉树非递归遍历的简单写法