64位下 目标平台需要设置为 X86
转:
c# 与 lua 的交互 比较简单, 一下为例子:
c# 文件内容:
- using System;
- using System.Collections.Generic;
- using System.Text;
- using LuaInterface; // lua 封装库
- namespace lua_test
- {
- class MyClass // 自定义类
- {
- public string MyStr(string s) // 自定义功能函数
- {
- return s + " World !";
- }
- }
- class Program
- {
- public static Lua m_lua = new Lua(); // 创建lua虚拟机
- static public void init()
- {
- MyClass my = new MyClass(); // 创建自定义类 实例
- // 在lua虚拟机(全局)中注册自定义函数,一边在lua文件中调用该函数
- m_lua.RegisterFunction("MyStr", my, my.GetType().GetMethod("MyStr"));
- m_lua.DoFile("lua_test.lua"); // 加载lua文件(绝对路径)
- }
- static void Main(string[] args)
- {
- init();
- // 加载乱文件后,使用GetFunction获取函数,再调用Call执行(传参数)
- object[] objs = m_lua.GetFunction("MyNum").Call(100);
- // Call函数的返回值为一个object数组
- }
- }
- }
lua文件(lua_test.lua)内容:
function MyNum(i)
s = MyStr("Hello");
return i,s;
end
执行完后 objs 中 2 个值 为100 和 Hello World !