C#中调用lua
来源:互联网 发布:好用的泡妞软件 编辑:程序博客网 时间:2024/05/17 00:04
首先引入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("这是一个静态方法");
}
- C#中调用lua
- lua中调用C#
- C#调用LUA
- c#调用脚本语言Lua
- 【Lua】在C#中通过lua调用C#中的类方法
- 【Lua】在C#工程中通过Lua调用C#中的字段和方法
- ulua在C#中调用lua并传递参数
- ulua中lua代码使用反射调用c#详解
- C++中调用Lua
- lua中调用C
- LUA中调用C
- Lua与C#调用原理
- Lua 在Lua中调用C函数
- lua 中 调用 union 对象
- lua 中 调用 union 对象
- lua中调用c++函数
- C/C++中调用Lua
- 在lua中调用DLL
- spring security学习(一)
- 数学基础II——矢量运算的意义
- MySQL实现分页,SQLServer实现分页,数据库索引
- Struts2学习笔记一:web.xml的配置
- make -C $(KDIR) M=$(shellpwd) modules
- C#中调用lua
- 【云计算虚拟化】docker在ubuntu14.04下的安装
- 深入理解Objective-C:Category (原文基础上有改动)
- Android图片处理方法大全
- 【1】14种Android Sensor
- RevitaAPI属性
- 关于js闭包的一些理解
- [IOS开发教程] IOS端的摇一摇功能
- c++实现封装socket