解析LUA脚本语言基本使用方法

移动开发 iOS
LUA脚本语言基本使用方法是本文要将介绍的内容,主要是来学习Lua脚本语言的使用方法,具体内容来看本文详解。

LUA脚本语言基本使用方法是本文要将介绍的内容,主要是来学习Lua脚本语言的使用方法,具体内容来看本文详解。我也只是用了它1天,的确很简单,但又功能强大,能让你的程序特别富有弹性. 随便学一两下吧,就已经很有用了,一起来吧 LUA库去网上下载吧,这里就不上传.

先要把下边这些语句加入到VC中的头文件,一般是加到StdAfx.h中

  1. extern "C" {   
  2. #include "lua.h"   
  3. #include "lualib.h"   
  4. #include "lauxlib.h"   
  5. #pragma comment(lib, "lualib.lib")   
  6. #pragma comment(lib, "lua.lib")   
  7. }  

然后一般来说都使用一个全局的LUA库定义的这个东西

  1. lua_State* g_Lua;  

并且在你的工程处初始化时也给LUA初始化

  1. g_Lua = lua_open();    **加这句   
  2.  
  3.    /* load Lua base libraries */    网上一些教材中这么写的   
  4.      lua_baselibopen(g_Lua);        不过我这简单的例子中不用到这些也行   
  5.    lua_tablibopen(g_Lua);   
  6.    lua_iolibopen(g_Lua);   
  7.    lua_strlibopen(g_Lua);   
  8.    lua_mathlibopen(g_Lua);  

紧接着声明接口函数,注册上函数

  1. lua_register(g_Lua, "Message",    myMessage);  

好,初始化部分完了,我们看看接口函数的写法。

函数必须这样的格式来写

  1. static int Func(lua_State *L)   
  2. {   
  3.    静态型函数,而且必须带参数为lua_State结构指针   
  4.    返回的值是代表返回的数据个数,比如return 2;就可以代表   
  5.    返回两个整数啊,浮点数什么的,象LUA的脚本编写就可以这样   
  6.    i, j = Func() , 这样就表示可以从Func接口函数中得到两个返回值了   
  7.  
  8.    return 0;   
  9. }  

执行脚本语句可以读文件,也可以直接读函数名
 
我们注册了

  1. lua_register(g_Lua, "Message",    myMessage);   
  2.  
  3. static int myMessage(lua_State *L)   
  4. {   
  5.    OutputDebugString("OK");   
  6.      return 0;   
  7. }   
  8.  
  9. lua_dofile(g_Lua, strCurPath); //读文件,必须给出完整的文件路径名称   
  10. lua_dostring(g_Lua, "Message()"); //直接读函数  

文件中只要写上

  1. Message()  

就可以了。

因为脚本可以处理一些复杂的逻辑,通常要把脚本执行给它在线程中运行

  1. extern lua_State* g_Lua;   
  2.  
  3. HANDLE ScriptThreadID = NULL;   
  4.  
  5. UINT __stdcall DoScript(void *lPrarm)   
  6. {   
  7.    CString strCurPath;   
  8.    GetModuleFileName(AfxGetInstanceHandle(), strCurPath.GetBuffer(MAX_PATH), MAX_PATH);   
  9.    strCurPath.ReleaseBuffer();   
  10.    int nFind = strCurPath.ReverseFind('\\');   
  11.    strCurPathstrCurPath = strCurPath.Left(nFind+1);   
  12.    strCurPath += (char*)lPrarm;   
  13.  
  14.    lua_dofile(g_Lua, strCurPath);   
  15.    lua_dostring(g_Lua, "Message()"); //直接用函数名来执行   
  16.  
  17.    _endthreadex(0);   
  18.    return 0;   
  19. }   
  20.  
  21. int DoLuaScript(const char* filename)   
  22. {//通过文件来执行脚本   
  23.    if (ScriptThreadID)   
  24.        TerminateThread(ScriptThreadID, 0);   
  25.    ScriptThreadID = (HANDLE)_beginthreadex(NULL, 0, DoScript, (PVOID)filename, 0, 0);   
  26.       
  27.    return 0 ;   
  28. }   
  29.  
  30. static int myMessage(lua_State *L)   
  31. {   
  32.    OutputDebugString("OK");   
  33.      return 0;   
  34. }  

哈哈,写完了,不懂得文学,随便乱写一通了。

小结:解析LUA脚本语言基本使用方法的内容介绍完了,希望通过本文的学习能对你有所帮助!

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

2011-08-22 18:00:53

Lua语言

2011-08-25 09:55:27

2011-08-29 15:58:51

Lua函数

2011-08-25 10:40:21

Lua游戏

2011-08-22 16:59:28

Lua

2011-08-25 11:02:04

2011-08-22 17:41:23

LUA 脚本 语言

2011-08-22 18:08:09

Lua脚本

2011-08-24 13:32:17

2011-06-22 14:07:42

Lua

2011-08-25 14:26:40

LUA数据文件

2010-02-26 13:03:31

Python脚本语言

2011-09-07 09:51:27

Javascript

2011-07-06 16:54:44

ASP

2009-06-10 08:41:15

Linux脚本语言

2010-02-24 14:04:32

Python脚本语言

2010-07-01 09:29:15

Java脚本语言javax.scrip

2011-06-14 10:18:58

QThread Qt 线程

2010-10-08 14:27:25

JavascriptSplit

2012-07-16 11:23:18

LinuxWindows脚本语言
点赞
收藏

51CTO技术栈公众号