Lua腳本語(yǔ)言入門(mén)學(xué)習(xí)其應(yīng)用教程
Lua腳本可以很容易的被C/C++代碼調(diào)用,也可以反過(guò)來(lái)調(diào)用C/C++的函數(shù),這使得Lua在應(yīng)用程序中可以被廣泛應(yīng)用。不僅僅作為擴(kuò)展腳本,也可以作為普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和維護(hù)。同時(shí),它廣泛地應(yīng)用于網(wǎng)游、自動(dòng)化交易系統(tǒng)、股軟(公式)等中。
Lua 是一個(gè)小巧的腳本語(yǔ)言。作者是巴西人。該語(yǔ)言的設(shè)計(jì)目的是為了嵌入應(yīng)用程序中,從而為應(yīng)用程序提供靈活的擴(kuò)展和定制功能。它的主頁(yè)是 www.lua.org。
在C#中使用Lua也十分簡(jiǎn)單。
- LuaInterface is a library for integration between the Lua language and Microsoft .
- NET platform’s Common Language Runtime (CLR). Lua scripts can use it to instantiate CLR objects,
- access properties, call methods, and even handle events with Lua functions.
從LuaInterface網(wǎng)站(http://luaforge.net/projects/luainterface/)上可以下載到這個(gè)庫(kù)。在你的項(xiàng)目中引用LuaInterface.dll后就可以開(kāi)始了。
這篇文章用一個(gè)簡(jiǎn)單的控制臺(tái)程序范例講述了如何在 C# 中使用 Lua.
首先,我們添加一個(gè) LuaInterface (開(kāi)源的類(lèi)庫(kù))的引用,并在類(lèi)中創(chuàng)建一個(gè) Lua 虛擬機(jī)對(duì)象示例。
1、起步
傻瓜式的,從控制臺(tái)直接讀取 lua 代碼,交給虛擬機(jī)去執(zhí)行。
- pLuaVM.DoString(strInput);
2、暴露一些自定義的函數(shù)給 lua 虛擬機(jī),運(yùn)行時(shí)供調(diào)用執(zhí)行。
用 Lua.RegisterFunction(Name, Target, Method)
(參數(shù)類(lèi)型分別是:string, 類(lèi)的實(shí)例, MethodInfo)
3、將注冊(cè)過(guò)程自動(dòng)化。
創(chuàng)建一個(gè)標(biāo)簽類(lèi) AttrLuaFunc,用于給函數(shù)添加標(biāo)簽。然后利用 .NET 的發(fā)射特性,在程序初始化的***階段,枚舉當(dāng)前對(duì)象的所有方法,注冊(cè)所有具有該特性的函數(shù)到 Lua 虛擬機(jī)中。并在全局的一個(gè) hashtable 中保存其方法名、參數(shù)等信息。
參考:
Lua 官方網(wǎng)站:
- http://www.lua.org/
一個(gè)不錯(cuò)的教程:
- http://lua-users.org/wiki/TutorialDirectory
Lua 5.0 參考手冊(cè)(中文)
- http://www.nirvanastudio.org/wp-content/uploads/2006/04/lua-5_0-reference-manual.html
Lua.NET
- http://www.lua.inf.puc-rio.br/luanet/
Blogs about Lua:
- http://blog.dreambrook.com/soloist/
小結(jié):Lua入門(mén)學(xué)習(xí)其應(yīng)用教程的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!


















