LuaInterface的使用技巧

using LuaInterface; //记得引用 LuaInterface.DLL到工程中

namespace WindowsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
class testclass //这个类用来存放要开放给LUA的函数
{
public void ShowMessage(string s)
{
MessageBox.Show(s);
}
}
private void button1_Click(object sender, EventArgs e)
{
Lua lua = new Lua();


testclass a1 = new testclass();
lua.RegisterFunction("ShowMessage", a1, a1.GetType().GetMethod("ShowMessage")); //注册函数给LUA

try

{

object[] obj = new object[2]; //先申请对象


//LUA中调用 C#的函数

lua.DoString(“ value = 0 /nfunction add(a,b)/n return a+b,a*b /n end /n value = add(1,2) /nShowMessage(value)”);

// 执行脚本,显示计算结果3

//C#中调用 LUA的函数
LuaFunction add=(LuaFunction)lua.GetFunction("add");

if(add != null) //由于从脚本中获取函数,有可能获取不到,所以这里要做容错

obj = add.Call(new object[] {2,3});

//这个时候 obj[0] 就等于5,obj[1] 就等于6 函数返回多个值

Double val=lua.GetNumber("value"); //获取脚本中的变量值

}

finally

{

ShowMessage("执行完成");

}
}
}
}

你可能感兴趣的:(interface)