参考链接:
https://www.cnblogs.com/lijiajia/p/8284328.html
0.
1.c#调用lua
1 using LuaInterface; 2 using System; 3 4 namespace TestLua 5 { 6 class Program 7 { 8 static IntPtr L; 9 10 static void Main(string[] args) 11 { 12 int sum; 13 L = LuaDLL.luaL_newstate();//创建lua状态机 14 LuaDLL.luaL_openlibs(L);//打开Lua状态机中所有Lua标准库 15 LuaDLL.luaL_dofile(L, "add.lua");//加载lua脚本 16 sum = LuaAdd(8, 9); 17 Console.WriteLine(sum); 18 LuaDLL.lua_close(L);//关闭lua状态机 19 Console.ReadKey(); 20 } 21 22 static int LuaAdd(int x, int y) 23 { 24 int sum = -1; 25 LuaDLL.lua_getglobal(L, "AddFunc");//函数名 26 LuaDLL.lua_pushnumber(L, x);//参数入栈 27 LuaDLL.lua_pushnumber(L, y);//参数入栈 28 LuaDLL.lua_call(L, 2, 1);//开始调用函数,有2个参数,1个返回值 29 sum = (int)LuaDLL.lua_tonumber(L, -1);//取出返回值 30 LuaDLL.lua_pop(L, 1); 31 return sum; 32 } 33 } 34 }
add.lua
1 function AddFunc(x,y) 2 return x + y 3 end
输出:
2.lua调用c#