在你的 C# 项目当中集成对 LUA 的动态解析支持

在C#当中你可以使用Neo.Lua这个第三方库来集成LUA支持,并且你的LUA当中还能够编写并且使用.Net的库。

首先在Nuget包管理器当中下载并且安装Neo.LuaNeo.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);
        }

效果:

如果看不清楚,请右键查看图片。

看不到图说明挂掉了

Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计