开始使用lua5.1

原创 2006年06月09日 18:16:00

lua是一个很强大脚本语言.可以用于编写AI的流程,可以编写状态机.在客户端,可以根据这个配置来生出界面.
如果要使用这个东西先还是要去下载到http://www.lua.org
在我写这文章的时候最新版本是5.1.
使用5.1的时候,如果还是看以前的那一些文章与例子可能会有问题.原因是新版本的lua初始化一些库的时候,有一个库是不能被初始化的luaopen_io(),这个函数一调用就会完蛋.
在新的版本里不是这样写的了.
L = luaL_newstate();       // 新建一个lua_Staue出来
 luaL_openlibs(L);           // 初始化所有的库
在新的版本里,我们就不需要一个一个的去调用了.两个函数搞定.(只是需要有一些太硬性了,可能有一些类库在我这个应用中是不需要使用的,有一点浪费)
这次我使用lua脚本做了一下配置文件,代替了以前使用xml文档.在C++里使用lua很重要的一点是那个堆栈.需要明白这个堆栈的工作原理.为了调试的方便.需要写一个检查堆栈的函数:

void stackDump(lua_State *L)
{
 
 int i;
 int top = lua_gettop(L);
 for (i = 1; i <= top; i++)
 { 
  int t = lua_type(L, i);
  switch (t)
  {
  case LUA_TSTRING: /* strings */
   cout<<"字符串/t"<<lua_tostring(L, i);
   break;
  case LUA_TBOOLEAN: /* booleans */
   printf(lua_toboolean(L, i) ? "true" : "false");
   break;
  case LUA_TNUMBER: /* numbers */
   printf("数字/t %g /n", lua_tonumber(L, i));
   break;
  default: /* other values */
   printf("其它值/t %s /n", lua_typename(L, t));
   break;
  }
  printf(" "); /* put a separator */
 }
 printf("::::::::::::::::结束:::::::::::::::::/n");
}

这个东西调用之后,就可以把lua_Statue中的堆栈都导出来.很方便的.
说明几个函数的作用:
luaL_newstate 使用它将会将建一个lua_Statue.出来.
luaL_openlibs 初始化全部的库
if (luaL_loadfile(L, szFileName) || lua_pcall(L, 0, 0, 0)) 这里有两个函数.一个是加载文件.第二个pcall函数调用之后将会把加载的lua文件加载到内存块中.以便后来来查询.
lua_getglobal(L,"width");这是对全局的堆栈里压一个变量,之后马上会调用查询,调用的时候pop一次,查询到了结果之后会push结果到栈里.使用lua_tonumber()函数来得到这个栈里的一个元素的内容.lua_pop()用于pop栈中的东西.查询完成之后是需要pop掉的.lua_gettable()这个函数比较的特别.当你进入了一个表之后,想查询这个表中的内容的时候就需要lua_pushstring()之后调用这个函数.就可以得到这个表中的内容了.有一些像把lua_getglobal里的过程被分开了二个部分一样的.一个有push的过程,还有一个查询的过程.

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Tolua使用笔记一:开始使用Tolua的准备工作与lua文件读取方法

原文地址:http://blog.csdn.net/qq_30168505/article/details/52743603其实作者自带的那个说明已经很详细了,不过为了赚点访问量,我还是自己也来个简单...

从0开始使用Cocos2dx Lua过程记录

从官网下载 cocos2dx 3.16版本 下载完成用notepad++打开readme.md文档 按照说明运行setup.py,发现未安装python,去python官网下载最新的python 2....

从零开始使用CubeMX创建以太网工程

  • 2017年07月11日 23:05
  • 1.19MB
  • 下载

vs项目中使用c++调用lua5.1

http://blog.csdn.net/wangbin_jxust/article/details/37557935 一、创建项目 同样在该解决方案中,右键解决方案->添加项目-...

AppScan开始使用

  • 2013年06月04日 09:18
  • 1.66MB
  • 下载

苹果官方Apple Pay开发文档(中文版):开始使用Apple Pay

原文地址:http://www.cocoachina.com/ios/20140910/9573.html 本文由CocoaChina翻译自苹果官方Apple Pay开发文档。目前版本为...

!教你从零开始使用小凡模拟器

  • 2012年08月29日 15:53
  • 4.34MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:开始使用lua5.1
举报原因:
原因补充:

(最多只允许输入30个字)