成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解析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-22 16:59:28

Lua

2011-08-25 11:02:04

2011-08-25 10:40:21

Lua游戲

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

2010-02-26 13:03:31

Python腳本語言

2011-09-07 09:51:27

Javascript

2011-08-25 14:26:40

LUA數據文件

2011-07-06 16:54:44

ASP

2009-06-10 08:41:15

Linux腳本語言

2010-02-24 14:04:32

Python腳本語言

2010-10-08 14:27:25

JavascriptSplit

2011-06-14 10:18:58

QThread Qt 線程

2010-07-01 09:29:15

Java腳本語言javax.scrip

2013-07-25 14:12:53

iOS開發學習UITableView
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 高清成人av | 亚洲综合在线一区二区 | 精品91视频| 欧美成人精品一区二区男人看 | www.99re| 男女免费视频网站 | 天天综合久久 | 亚洲精品一区二区在线观看 | 99久久精品国产一区二区三区 | 欧美精品在线观看 | 蜜桃久久 | 亚洲国产成人久久综合一区,久久久国产99 | 欧美高清视频 | av无遮挡 | 日韩精品免费在线观看 | 亚洲一区二区精品视频 | 亚洲资源站 | 国产一级片 | 五月激情六月婷婷 | 久久精品免费一区二区 | 成人字幕网zmw| 中国美女撒尿txxxxx视频 | 久久精彩 | 在线久草 | 日韩一级不卡 | 国产欧美一区二区三区日本久久久 | 亚洲欧美在线一区 | 成人精品国产免费网站 | 美日韩精品 | 男女视频在线观看免费 | 久久精品日产第一区二区三区 | 免费成年网站 | 中文字幕亚洲精品 | 国产精品久久久久久久久久久新郎 | 日韩一级精品视频在线观看 | 欧美阿v | 成人久久18免费网站图片 | 国产精品视频入口 | 精品视频一区二区 | av毛片| 欧美成人一区二区三区 |