lua学习笔记3--lua与c#交互(未完)

LuaInterface是C#与Lua连接的桥梁

LuaInterface是一个开源项目工程,内部有两个核心DLL文件:
  LuaInterface.dll:在C#中操作Lua代码需要依赖该文件;
  luanet.dll:在Lua中访问C#的类库脚本需要依赖该文件
将两个dll文件拷贝到项目工程
项目工程设置"引用"导入LuaInterface.dll
将两个dll的属性都设置成"如果较新则复制"

操作:
  引入LuaInterface命名空间
  实例化Lua解析器对象[在C#中执行Lua代码,靠的就是这个对象]
  Lua lua = new Lua();
  Lua解析器对象操作Lua代码空间
  使用Lua解析器对象,往Lua代码空间内写入变量,然后再读取使用变量
  (绝大多数情况,直接在C#中使用Lua解析器对象,加载一个Lua脚本文件进行运行)

 

C#内执行Lua代码:
  语法格式       Lua解析器对象.DoString("Lua代码");
  注意:
      DoString()方法主要用于执行一些较短的Lua代码片段
      DoString()方法执行过的代码,都会添加到Lua代码空间,在Lua文件中,是直接可以访问到这些代码的

//创建一个Lua解析器
Lua lua = new Lua();

//变量的声明和访问 lua.DoString("name = ‘cxk‘ age = 72 address = ‘beijing‘"); lua.DoString("print(name, age, address)"); //for循环语句 lua.DoString(@"for i = 0, 10, 1 do            print(i)          end"); //函数的定义与调用 lua.DoString(@"function Show()             print(‘lua show Function‘)          end          Show()          "); //table数组声明与访问 lua.DoString("myArray = { ‘AAA‘, ‘BBB‘, ‘CCC‘, ‘DDD‘}"); lua.DoString(@"for i = 1, table.getn(myArray), 1 do             print(myArray[i])          end"); 

C#内执行Lua文件
    Lua解析器对象.DoFile("[路径]Lua文件.lua") lua文件编码记得改为UTF-8或者ANSI

Lua lua = new Lua();
lua.DoFile("xxx.lua");
        
//GetString() 取Lua中字符串数据
lua.GetString("name");

//GetNumber() 取Lua中数值数据
lua.GetNumber("age");

//GetFunction 取Lua中的函数,只需写函数名
LuaFunction luaShow = lua.GetFunction("Show");
luaShow.Call();//执行lua中的函数
LuaFunction add = lua.GetFunction("Add");
System.Object[] obj = add.Call(10, 20);

 

lua学习笔记3--lua与c#交互(未完)

上一篇:[转帖]Windows安全认证是如何进行的?[Kerberos篇]


下一篇:用C#实现的几种常用数据校验方法整理(CRC校验;LRC校验;BCC校验;累加和校验)