Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。同时,它广泛地应用于网游、自动化交易系统、股软(公式)等中。

Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。它的主页是 www.lua.org。

在C#中使用Lua也十分简单。

  1. LuaInterface is a library for integration between the Lua language and Microsoft .
  2. NET platform’s Common Language Runtime (CLR). Lua scripts can use it to instantiate CLR objects,
  3. access properties, call methods, and even handle events with Lua functions.

从LuaInterface网站(http://luaforge.net/projects/luainterface/)上可以下载到这个库。在你的项目中引用LuaInterface.dll后就可以开始了。

这篇文章用一个简单的控制台程序范例讲述了如何在 C# 中使用 Lua.

首先,我们添加一个 LuaInterface (开源的类库)的引用,并在类中创建一个 Lua 虚拟机对象示例。

1、起步

傻瓜式的,从控制台直接读取 lua 代码,交给虚拟机去执行。

  1. pLuaVM.DoString(strInput);

2、暴露一些自定义的函数给 lua 虚拟机,运行时供调用执行。

用 Lua.RegisterFunction(Name, Target, Method)

(参数类型分别是:string, 类的实例, MethodInfo)

3、将注册过程自动化。

创建一个标签类 AttrLuaFunc,用于给函数添加标签。然后利用  .NET 的发射特性,在程序初始化的最后阶段,枚举当前对象的所有方法,注册所有具有该特性的函数到 Lua 虚拟机中。并在全局的一个 hashtable 中保存其方法名、参数等信息。

参考:

Lua 官方网站:

  1. http://www.lua.org/

一个不错的教程:

  1. http://lua-users.org/wiki/TutorialDirectory

Lua 5.0 参考手册(中文)

  1. http://www.nirvanastudio.org/wp-content/uploads/2006/04/lua-5_0-reference-manual.html

Lua.NET

  1. http://www.lua.inf.puc-rio.br/luanet/

Blogs about Lua:

  1. http://blog.dreambrook.com/soloist/

Lua脚本语言入门学习其应用教程的更多相关文章

  1. (五)Lua脚本语言入门

    ---恢复内容开始--- 写完这篇Lua脚本语言入门,自己就要尝试去用Lua脚本语言写esp8266了,,自己现在挺心急的,因为朋友使用esp8266本来说自己帮忙写好程序的,但是用的单片机不一样自己 ...

  2. (一)Lua脚本语言入门

    今天开始自己的Lua语言学习,Lua脚本语言,是介于应用程序和开发其应用程序的底层编程语言之间,,它很方便调用其它语言,它只是在载入时对其进行编译,而不像我们写的单片机程序是预编译的,先编译好然后写入 ...

  3. (三)Lua脚本语言入门

    又要找工作了,变的忧虑了,唯有学习才让内心变得踏实,今天玩了一下午的王者荣耀,正事都忘了...... 如果认为所谓的毅力是每分每秒的"艰苦忍耐"式的奋斗,那这是一种很不足的心理状态 ...

  4. (三)Lua脚本语言入门(数组)

    又要找工作了,变的忧虑了,唯有学习才让内心变得踏实,今天玩了一下午的王者荣耀,正事都忘了...... 如果认为所谓的毅力是每分每秒的“艰苦忍耐”式的奋斗,那这是一种很不足的心理状态.毅力是一种习惯,毅 ...

  5. (二)Lua脚本语言入门

    上一篇文章忘了插入代码了,方便粘贴复制...... 函数 对于c语言就是 void aa()//c语言是用void { print("这是一个函数") } Lua就变成了 func ...

  6. (二)Lua脚本语言入门(关于函数)

    上一篇文章忘了插入代码了,方便粘贴复制...... 函数 对于c语言就是 void aa()//c语言是用void { print("这是一个函数") } Lua就变成了 func ...

  7. (四)Lua脚本语言入门

    这篇文章就当成铺垫型的文章,写着写着发现有好多想写的,,关于C#与Java,当然作为铺垫肯定与Lua的下部分介绍有关..... 对于"泛型",先看C#中"泛型" ...

  8. (四)Lua脚本语言入门(数组遍历)

    这篇文章就当成铺垫型的文章,写着写着发现有好多想写的,,关于C#与Java,当然作为铺垫肯定与Lua的下部分介绍有关..... 对于"泛型",先看C#中"泛型" ...

  9. 深入LUA脚本语言,让你彻底明白调试原理

    这是道哥的第008篇原创 一.前言 上篇文章我们聊了gdb的底层调试机制,明白了gdb是利用操作系统提供的系统信号来调试目标程序的.很多朋友私下留言了,看到能帮助到大家,我心里还是很开心的,其实这也是 ...

随机推荐

  1. React组件,React和生命周期

    笔记,具体可以看看这个博客: https://segmentfault.com/a/1190000004168886?utm_source=tag-newest react 的jsx document ...

  2. Rpgmakermv(5) MiniLabel插件介绍

    ============================================================================ Introduction ========== ...

  3. VS2010/MFC编程入门之三十八(状态栏的使用详解)

    上一节中鸡啄米讲了工具栏的创建.停靠与使用,本节来讲解状态栏的知识. 状态栏简介 状态栏相信大家在很多窗口中都能见到,它总是用来显示各种状态.状态栏实际上也是一个窗口,一般分为几个窗格,每个窗格分别用 ...

  4. thinkphp+jquery+ajax前后端交互注册验证

    thinkphp+jquery+ajax前后端交互注册验证,界面如下 register.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. ...

  5. linux常用命令:find 命令参数详解

    find一些常用参数的一些常用实例和一些具体用法和注意事项. 1.使用name选项: 文件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用.  可以使用某种文件名模式来匹配 ...

  6. win10如何设置自动睡眠时间(修改电源计划不好用的情况下)

    https://answers.microsoft.com/en-us/windows/forum/windows_10-power/windows-10-sleeping-when-set-not- ...

  7. web前端----jQuery操作标签

    样式操作 样式类 addClass();// 添加指定的CSS类名. removeClass();// 移除指定的CSS类名. hasClass();// 判断样式存不存在 toggleClass() ...

  8. SNMP学习笔记之Linux服务器SNMP常用OID

    收集整理一些Linux下snmp常用的OID,用做服务器监控很不错. 应用示例 查看服务器1分钟平均负载: snmpwalk -v1 -c public 127.0.0.1 .1.3.6.1.4.1. ...

  9. flash,sram

    flash写入的内容不会因电源关闭而失去,读取速度慢,成本较低,一般用作程序存储器或者低速数据读取的情况. sram有最快的读写速度,但电源掉落后其内容也会失去,价格昂贵,一般用作cpu的二级缓存,内 ...

  10. ad各层

    mechanical              机械层    keepout layer           禁止布线层    top overlay              顶层丝印层    bo ...