C#中调用lua
2015-11-23 15:52
465 查看
首先引入LuaInterface.dll库文件
//创建Lua的解释器
Lua lua = new Lua();
//定义一个num
lua["num"] = 34;
Console.WriteLine(lua["num"]);
//定义一个字符串
lua["str"] = "string";
Console.WriteLine(lua["str"]);
//创建一个表 tab={}
lua.NewTable("tab");
Console.ReadKey();
//取得lua环境中的变量
double num = (double)lua["num"];
Console.WriteLine(num);
string str = (string)lua["str"];
Console.WriteLine(str);
//在C#中执行Lua脚本文件或者脚本字符串
//创建Lua的解释器
Lua lua = new Lua();
lua.DoString("num=2");
lua.DoString("str='a string'");
object[] values = lua.DoString("return num,str");
foreach (object obj in values)
{
Console.WriteLine(obj);
}
Console.ReadKey();
首先写一个lua文件,保存为aaa.lua
num=2
str="wang"
print(num,str)
接着导入lua文件到编译器,在编译器中设置它的属性为始终复制,并且lua文件的编码格式应该为ANSI,如果不是请用记事本修改
最后执行以下代码
//创建Lua的解释器
Lua lua = new Lua();
lua.DoFile("aaa.lua");
Console.ReadKey();
//lua和C#中类型的对应
nil null
string System.String
number System.Double
boolean System.Boolen
table LuaInterface.LuaTable
function LuaInterface.LuaFunction
//把一个C#方法注册进Lua的一个全局方法
static void Main(string[] args)
{
//创建Lua的解释器
Lua lua = new Lua();
Program p = new Program();
//把一个类中的普通方法注册进去
lua.RegisterFunction("LuaMethod",p,p.GetType().GetMethod("MyMethod"));
lua.DoString("LuaMethod()");
//把一个类的静态方法注册进去
lua.RegisterFunction("MyStaticMethod", null,typeof(Program).GetMethod("MyStaticMethod"));
lua.DoString("MyStaticMethod()");
Console.ReadKey();
}
public void MyMethod()
{
Console.WriteLine("haha");
}
public static void MyStaticMethod()
{
Console.WriteLine("这是一个静态方法");
}
//创建Lua的解释器
Lua lua = new Lua();
//定义一个num
lua["num"] = 34;
Console.WriteLine(lua["num"]);
//定义一个字符串
lua["str"] = "string";
Console.WriteLine(lua["str"]);
//创建一个表 tab={}
lua.NewTable("tab");
Console.ReadKey();
//取得lua环境中的变量
double num = (double)lua["num"];
Console.WriteLine(num);
string str = (string)lua["str"];
Console.WriteLine(str);
//在C#中执行Lua脚本文件或者脚本字符串
//创建Lua的解释器
Lua lua = new Lua();
lua.DoString("num=2");
lua.DoString("str='a string'");
object[] values = lua.DoString("return num,str");
foreach (object obj in values)
{
Console.WriteLine(obj);
}
Console.ReadKey();
首先写一个lua文件,保存为aaa.lua
num=2
str="wang"
print(num,str)
接着导入lua文件到编译器,在编译器中设置它的属性为始终复制,并且lua文件的编码格式应该为ANSI,如果不是请用记事本修改
最后执行以下代码
//创建Lua的解释器
Lua lua = new Lua();
lua.DoFile("aaa.lua");
Console.ReadKey();
//lua和C#中类型的对应
nil null
string System.String
number System.Double
boolean System.Boolen
table LuaInterface.LuaTable
function LuaInterface.LuaFunction
//把一个C#方法注册进Lua的一个全局方法
static void Main(string[] args)
{
//创建Lua的解释器
Lua lua = new Lua();
Program p = new Program();
//把一个类中的普通方法注册进去
lua.RegisterFunction("LuaMethod",p,p.GetType().GetMethod("MyMethod"));
lua.DoString("LuaMethod()");
//把一个类的静态方法注册进去
lua.RegisterFunction("MyStaticMethod", null,typeof(Program).GetMethod("MyStaticMethod"));
lua.DoString("MyStaticMethod()");
Console.ReadKey();
}
public void MyMethod()
{
Console.WriteLine("haha");
}
public static void MyStaticMethod()
{
Console.WriteLine("这是一个静态方法");
}
相关文章推荐
- Lua C API 的正确用法【written by 云风】
- 服务器返回protobuf的数据在c++/lua中传输保持完整
- c++ error 2064: term does not evaluate to a function taking 1 arguments解决方法
- lua绑定c++的时候常见得错误
- 编译lua5.3.1并在sublime 配置多个lua版本
- Lua 深复制 clone函数
- lua入门系列--lua中的语句
- LUA表克隆方法归纳
- lua快速入门
- Lua 变量
- Lua入门
- Sublime Text 常用快捷键
- Lua 入门学习教程(二) 函数 与 回调函数
- lua中遍历table的几种方式比较
- Lua 入门学习教程(一) Table 函数库
- lua遇到的错误
- Lua函数执行流程及函数延续点问题的研究
- lua--lua中的表达式
- ulua+PureMVC框架简单热更新使用
- lua 使用定时器