[Lua]与c#的交互(二)

参考链接:

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#

猜你喜欢

转载自www.cnblogs.com/lyh916/p/12234220.html
今日推荐