牛儿吃草的博客

c#调用脚本语言Lua——简单Demo

配置:1. 下载c#下的Lua支持类库。下载地址:将(lua51.dll\LuaInterface.dll)引用自己的项目中。2. 修改App.config添加以下内容:

<?xml version="1.0" encoding="utf-8" ?><configuration> <startup useLegacyV2RuntimeActivationPolicy="true"><supportedRuntime version="v4.0" sku = ".NETFramework,Version=v4.0"/><supportedRuntime version="v2.0.50727"/> </startup></configuration>否则,运行代码会出现以下提示:混合模式程序集是针对“v2.0.50727”版的运行时生成的,,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。调用步骤:1. 声明Lua虚拟机 Lua m_lua = new Lua();2. 将c#的对象方法注册到Lua中,使Lua可以调用该方法。 class MyClass { public string MyStr(string s) { return s + " World !"; } } MyClass my = new MyClass(); m_lua.RegisterFunction("MyStr", my, my.GetType().GetMethod("MyStr")); 3. 加载Lua代码 m_lua.DoFile("lua_test.lua"); 4. 调用Lua方法 Object[] objs = m_lua.GetFunction("MyNum").Call(100); Demo代码:using LuaInterface;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace lua_test{class MyClass {public string MyStr(string s){return s + " World !";}}class Program{public static Lua m_lua = null;//创建lua虚拟机static public void init() {MyClass my = new MyClass();//创建自定义类实例//在lua虚拟机(全局)中注册自定义函数,一边在lua文件中调用该函数m_lua.RegisterFunction("MyStr", my, my.GetType().GetMethod("MyStr"));m_lua.DoFile("lua_test.lua");//加载lua文件(绝对路径)}static void Main(string[] args){m_lua = new Lua();init();//加载乱文件后,使用GetFunction获取函数,再调用Call执行(传参数)Object[] objs = m_lua.GetFunction("MyNum").Call(100);//Call函数的返回值为一个Object数组foreach(Object obj in objs){Console.WriteLine(obj);}Console.ReadLine();}}}Demo下载:

PS:最简单的学习方法就是拿到一个可以运行的Demo。

幸福就是重复。每天跟自己喜欢的人一起,通电话,

牛儿吃草的博客

相关文章:

你感兴趣的文章:

标签云: