马上面临毕业设计,打算做点跟网游有关的,先从做周边工具开始,目前正在做一个协议序列化和反序列化的东西,广告一波先: https://github.com/Anti-Magic/rproto

目前非常简陋,功能还没做完,不要当真。。

因为目标是绑定到lua,作为一个独立的库,不想对项目有依赖,这样的好处是客户端和服务端都可以方便的拿来用,所以打算手动绑定。

 

我夜观天象发现,到目前为止网上找不到针对lua5.3的这么简明扼要且完整的示例,转载注明出处:http://www.cnblogs.com/wolfred7464/p/5147675.html

 

由于lua提供的require函数可以引入C语言的动态链接库,对于使用者来说,不需配置,只要调用require就可以,肯定是最简单的方法。(其实iOS不能这样做的,唉,习惯就好)

首先读者需要对lua提供的操作虚拟栈的函数比较熟悉,不熟悉的先翻手册吧:http://cloudwu.github.io/lua53doc/manual.html

先上一段简单的示例,功能是使用C语言编写一个计算2个浮点数之和的add函数,绑定到lua由lua调用:

 1 #include "lua.h"
 2 #include "lualib.h"
 3 #include "lauxlib.h"
 4 #include "luaconf.h"
 5 
 6 double add(double x, double y) {
 7     return x+y;
 8 }
 9 
10 static int ladd(lua_State* L) {
11     double x = luaL_checknumber(L, 1);
12     double y = luaL_checknumber(L, 2);
13     lua_pushnumber(L, add(x+y));
14     return 1;
15 }
16 
17 int luaopen_xxx(lua_State* L) {
18     luaL_checkversion(L);
19 
20     struct luaL_Reg funcs[] = {
21         {"add", ladd},
22         {NULL,  NULL}
23     };
24     luaL_newlib(L, funcs);
25     return 1;
26 }
View Code

相关文章:

  • 2021-11-08
  • 2021-05-31
  • 2021-09-27
  • 2021-07-26
  • 2021-10-15
  • 2021-09-25
  • 2021-05-19
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-04
  • 2022-12-23
  • 2021-12-27
  • 2022-12-23
  • 2021-04-17
相关资源
相似解决方案