关于LUA应用笔本操作

移动开发
关于LUA应用笔本操作死本文要介绍的内容,主要是来了解并学习LUA应用的基本操作,具体内容的实现来看本文详解。

关于LUA应用笔本操作死本文要介绍的内容,主要是来了解并学习LUA应用。游戏中的界面都是用LUA来写,这个和WOW是一模一样的,嗯,以后再慢慢研究.年终了,保存下先.

lua语言规则:

  1. lua_State *L = lua_open(); //建立一个LUA状态机     
  2. luaopen_base(L); // 启动它     
  3. const char *buf = "print('hello, world!')";     
  4. lua_dostring(buf); //把buf写入到lua中并执行     
  5. lua_close(L); // 关闭L     
  6. lua_pushstring(L, "var"); //将变量的名字放入栈]     
  7. lua_getglobal(L, "var"); //变量的值现在栈顶     
  8. int var = lua_tonumber(L, -1); //取得栈顶的元素     
  9. lua_tostring( ls, -1 ); //取得栈顶的的元素, 一般用于参数传递     
  10. lua_pushstring( ls, s_szPlayer ); //把某个字符串元素压入栈中,可用于参数传出     
  11. lua_pushnumber(L, 200); //把某个数字元素压入栈中,     
  12. lua_register(L, "foo", foo);  
  13. //把自己在C++中编写的函数foo拿到lua中注册,这样在lua脚本中就可以调用这个函数 

在Lua中,函数等同于变量,所以你可以这样来取得这个函数:
  
lua_getglobal(L, "main");//函数现在栈顶
  
现在,我们可以调用这个函数,并传递给它正确的参数:

  1. lua_pushnumber(L, 100); //将参数压栈     
  2. lua_pcall(L, 1, 1, 0); //调用函数,有一个参数,一个返回值   //返回值现在栈顶     
  3. int result = lua_tonumber(L, -1); 
 

例子:

  1.    #include "lua.h"     
  2.    #include "lauxlib.h"     
  3. #include "lualib.h"   int foo(lua_State *L)   {   
  4.   //首先取出脚本执行这个函数时压入栈的参数     
  5. //假设这个函数提供一个参数,有两个返回值     
  6. //get the first parameter   const char *par = lua_tostring(L, -1);     
  7. printf("%s\n", par);   //push the first result   lua_pushnumber(L, 100);     
  8. //push the second result   lua_pushnumber(L, 200);     
  9. //return 2 result   return 2;    
  10. }     
  11. int main(int argc, char *argv[]){    
  12.  lua_State *L = lua_open();     
  13. luaopen_base(L);     
  14. luaopen_io(L);     
  15. lua_register(L, "foo", foo);     
  16. const char *buf = "r1, r2 = foo("hello") print(r1..r2)";     
  17. lua_dostring(L, buf);     
  18. lua_close(L);     
  19. return 0;    

小结:关于LUA应用笔本操作的内容介绍完了,希望通过LUA应用内容的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-25 17:25:55

LUADelphi

2011-08-23 14:33:51

Lua捕获字符串

2011-08-24 17:09:35

LUA闭包函数

2011-08-25 17:01:50

LUA网游游戏

2011-08-23 17:06:03

2011-08-23 16:14:27

Lua函数库函数

2011-08-24 16:59:59

LuaModule

2019-08-06 14:06:19

数据库工具技术

2011-08-25 15:51:10

Lua脚本

2011-08-29 16:37:21

Lua协同线程

2011-08-25 14:03:32

UbuntuLUA安装

2011-08-23 15:34:56

Lua模式 匹配

2011-08-24 14:33:14

LUA开发环境Decoda

2013-12-12 16:10:21

Lua脚本语言

2011-12-05 14:28:07

商用笔记本

2011-08-24 14:14:13

LUA环境 配置

2012-10-16 14:35:42

想Y480N

2017-04-24 11:03:40

商用笔记本职场

2010-03-25 17:28:41

Python配置

2011-08-25 15:21:02

Lua字符串
点赞
收藏

51CTO技术栈公众号