最近在研究WOW Interface,由于提供的函数和允许使用的语言是LUA所以顺便找了一下看有没有和.NET CLR交互的版本,结果让我找到了,嘿嘿!下面让我们看一下在.NET中怎么使用LUA
我们看下官方网站提供的例子来初窥Lua.Net
我们看下官方网站提供的例子来初窥Lua.Net
luanet = require("luainterface")
luanet.load_assembly("System.Windows.Forms")
luanet.load_assembly("System.Drawing")
Form = luanet.import_type("System.Windows.Forms.Form")
Button = luanet.import_type("System.Windows.Forms.Button")
Point = luanet.import_type("System.Drawing.Point")
mainForm = Form()
buttonOk = Button()
buttonCancel = Button()
buttonOk.Text = "Ok"
buttonCancel.Text = "Cancel"
buttonOk.Location = Point(10,10)
buttonCancel.Location = Point(buttonOk.Left, buttonOk.Height +
buttonOk.Top + 10)
mainForm.Controls:Add(buttonOk)
mainForm.Controls:Add(buttonCancel)
mainForm.StartPosition =
import_type("System.Windows.Forms.FormStartPosition").CenterScreen
function handleMouseUp(sender,args)
print(sender:ToString() .. " MouseUp!")
end
handlerUp = buttonOk.MouseUp:Add(handleMouseUp)
handlerClick = buttonCancel.Click:Add(os.exit)
mainForm:ShowDialog()
luanet.load_assembly("System.Windows.Forms")
luanet.load_assembly("System.Drawing")
Form = luanet.import_type("System.Windows.Forms.Form")
Button = luanet.import_type("System.Windows.Forms.Button")
Point = luanet.import_type("System.Drawing.Point")
mainForm = Form()
buttonOk = Button()
buttonCancel = Button()
buttonOk.Text = "Ok"
buttonCancel.Text = "Cancel"
buttonOk.Location = Point(10,10)
buttonCancel.Location = Point(buttonOk.Left, buttonOk.Height +
buttonOk.Top + 10)
mainForm.Controls:Add(buttonOk)
mainForm.Controls:Add(buttonCancel)
mainForm.StartPosition =
import_type("System.Windows.Forms.FormStartPosition").CenterScreen
function handleMouseUp(sender,args)
print(sender:ToString() .. " MouseUp!")
end
handlerUp = buttonOk.MouseUp:Add(handleMouseUp)
handlerClick = buttonCancel.Click:Add(os.exit)
mainForm:ShowDialog()
由于还没有可视化编程环境的支持,用Lua.Net写一个WinForm程序可以用变态来形容,所有的控件要自行添加到Controls集合中,并且还要自行指定在窗体中的位置,看看buttonOk.Location = Point(10,10);就知道了,这种非可视化的开发非常的不方便。使用lua.net的唯一理由可能是你需要调用一些用lua写的函数,呵呵
下面给出官方网站:
http://bandodalua.lua.inf.puc-rio.br/luanet/