Lua与C#连接

        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 文件下, 至于找不到文件什么的,同上

猜你喜欢

转载自blog.csdn.net/qq_33951440/article/details/79975580