在C#当中你可以使用Neo.Lua这个第三方库来集成LUA支持,并且你的LUA当中还能够编写并且使用.Net的库。
首先在Nuget包管理器当中下载并且安装Neo.Lua
、Neo.Lua.Desktop
这两个包,之后我们新建一个WinFrom项目,在这个项目上面我们拖放一个TextBox以及一个Button,在这里我们的TextBox的名字叫做textbox_LuaContent
,Button的名字则为button_Test
。
建立好之后,我们在button_Test的响应函数里面编写如下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
private void button_Test_Click(object sender, EventArgs e)
{
try
{
using (var _lua = new Lua())
{
// 初始化环境
dynamic _g = _lua.CreateEnvironment<LuaGlobal>();
// 绑定函数委托
_g.print = new Action<string>(print);
// 编译代码成可执行的数据块
var _chunk = _lua.CompileChunk(textbox_LuaContent.Text, "Test.lua", new LuaCompileOptions() { DebugEngine = LuaStackTraceDebugger.Default });
// 执行
_g.dochunk(_chunk);
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
}
/// <summary>
/// 打印功能
/// </summary>
/// <param name="outputContent">要打印的内容</param>
private void print(string outputContent)
{
MessageBox.Show(outputContent);
}
|
效果:
如果看不清楚,请右键查看图片。