C#连Lua
学了一天,先记录下,方便之后自己去别的电脑上安装。以及几个bug
一:搭建lua环境,这里直接提供个Lua for windows ,解压就能用。
二:vs2017引入两个dll(luanet.dll,luaInterface.dll),并添加引用(luaInterface.dll)
https://pan.baidu.com/s/1-NTm0d0pjfrnvyshKIKf5Q
三:语法就不存了,直接存连接的代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using LuaInterface; namespace cs2lua { class Program { static void Main(string[] args) { Lua lua = new Lua();//创建lua的解释器 /* 直接运行 lua.DoString("num=2"); lua.DoString("score=99"); Object[] vals = lua.DoString("return num,score"); foreach(object obj in vals) { Console.WriteLine(obj); } */ //执行已经存在的lua脚本 lua.DoFile("myLua.lua"); Console.ReadKey(); } } }
11
可以直接在vs里建一个类myLua.lua。
第一次执行的时候报错,未找到文件,将
改为始终复制
第二次执行的时候报错,symbol near ? ,将我们创建的lua改为ansi编码即可
Lua连c#
require "luanet" luanet.load_assembly("System") Int32=luanet.import_type("System.Int32"); print(Int32);
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using LuaInterface; namespace cs2lua { class Program { static void Main(string[] args) { //创建lua的解释器 Lua lua = new Lua(); //执行已经存在的lua脚本 lua.DoFile("scripts.lua"); Console.ReadKey(); } } }
注意会报错找不到
luanet
此时,需要把luanet.dll手动拷贝到\cs2lua\bin\Debug 文件下, 至于找不到文件什么的,同上