日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Lua

 ShaneWu 2009-06-21
分類于 Lua, 代碼人生 | 733 次點擊 | 發(fā)表評論 »
由 Apex 發(fā)表于

.lua測試腳本

在編寫第一個Lua程序之前,我們先編寫一個.lua腳本以供調(diào)用,代碼如下:

下載: test.lua
  1. -- test.lua
  2. print("Hello Lua !")

其中,兩個連續(xù)的減號意味著這是一行注釋。我們期望執(zhí)行這個.lua腳本的結(jié)果是在屏幕上打印一串“Hello Lua !”的字符串。

提示:多行注釋使用“--[[”開始,以“]]”結(jié)束。

內(nèi)嵌Lua解釋器

現(xiàn)在我們來寫一個最簡單的控制臺程序,并在其中內(nèi)嵌Lua解釋器,運行該程序,可以執(zhí)行test.lua腳本,在屏幕上打印出我們希望的結(jié)果。先來看代碼,然后再解釋代碼內(nèi)容:

下載: testlua.cpp
  1. extern "C"
  2. {
  3. #include "../include/lua/lua.h"
  4. #include "../include/lua/lualib.h"
  5. #include "../include/lua/lauxlib.h"
  6. }
  7.  
  8. #pragma comment(lib,"../lib/liblua.lib")
  9.  
  10. int main ( int argc, char *argv[] )
  11. {
  12.     /* the Lua interpreter */
  13.     lua_State* L;
  14.  
  15.     /* initialize Lua */
  16.     L = lua_open();
  17.  
  18.     /* load Lua base libraries */
  19.     luaL_openlibs(L);
  20.  
  21.     /* run the script */
  22.     luaL_dofile(L, "test.lua");
  23.  
  24.     /* cleanup Lua */
  25.     lua_close(L);
  26.  
  27.     return 0;
  28. }

看看這代碼,我都不用作解釋了。 :)

編譯上述代碼,最終我們會有兩個文件:testlua.exe和test.lua。將這兩個文件放到同一個目錄下,在命令行模式執(zhí)行testlua.exe,就可以看到我們期望的輸出了!

就是這么簡單!!下一次,我們將嘗試在.lua腳本中調(diào)用主程序(testlua.exe)內(nèi)部的C函數(shù)~~

分類于 Lua, 代碼人生 | 1,275 次點擊 | 發(fā)表評論 »
由 Apex 發(fā)表于

要在自己的程序中使用Lua,我們必須將Lua解釋器核心編譯到自己的程序中來,無論是直接編譯到主程序中,還是作為外部DLL調(diào)用,總之,第一件事情是編譯Lua解釋器核心。

說明:以后的操作如果沒有特別注明,就是在Windows平臺上進行的。

首先,到Lua官方網(wǎng)站下載最新的Lua源代碼,得到的是一個.tar.gz??梢杂昧餍械膲嚎s軟件如WinZip,WinRAR,或者開源的7z(推薦使用)來解開。解開的目錄中有一個src目錄,整個Lua核心代碼就在這里了。

我們在Windows平臺上擬使用Visual C++ 6.0來進行試驗,但是src目錄中并沒有VC6使用的工程文件。這個問題很好解決:在VC6中新建一個Win32 Static Library靜態(tài)庫工程,建議工程名稱設置為liblua,工程路徑指向Lua的src目錄,最好的方式是先設置工程名稱,然后修改工程路徑(為什么? 你試試就知道了 -:) )。在隨后的工程設置向?qū)е?,不要加入任何設置,即,不要勾選“Pre-Compiled Header”和“MFC Support”選項。

接下來,將所有src中的所有 .c (lua.c除外)和 .h 文件加入到工程中,編譯,就可以得到我們想要的靜態(tài)庫 liblua.lib 文件了。

在我們自己的軟件項目中,只需要 liblua.lib 和 幾個頭文件就可以開發(fā)了, 所以我們需要把這些文件整理一下,放到合適的位置。我是這樣放的:

建立include目錄,然后在include目錄下建立lua目錄,將下列文件復制到lua目錄下:

  • lauxlib.h
  • lua.h
  • luaconf.h
  • lualib.h

建立和include目錄同級的lib目錄,將編譯好的 liblua.lib 放到這里??梢詤⒖枷聢D:

Lua 開發(fā)環(huán)境路徑設置
圖中,exe和dll兩個目錄是打算用來存放自己寫的測試程序的。

這樣,我們的開發(fā)環(huán)境就配置好了,下一次,我們將開始做第一個調(diào)用lua腳本的小程序,來真正體驗lua的威力。

分類于 Lua, 代碼人生 | 1,195 次點擊 | 評論(2) »
由 Apex 發(fā)表于

Lua is a powerful light-weight programming language designed for extending applications. Lua is also frequently used as a general-purpose, stand-alone language. Lua is free software.

Lua是葡萄牙語中的“月亮”的意思,發(fā)音為:LOO-ah。

Lua是一個強大的輕量級腳本語言,主要設計來擴展應用程序功能。當然,Lua也經(jīng)常被作為一個通用、獨立的語言使用。Lua是免費軟件,而且是開源的,目前版本為5.1。

所謂的輕量級,意思是,僅僅需要在你的程序中增加額外約50Kb的開銷,就能夠為你的應用程序增加腳本執(zhí)行功能。

Lua的應用極為廣泛, 舉兩個例子:一是火熱的網(wǎng)絡游戲《魔獸世界》,就使用Lua作為應用界面擴展語言,很多外掛程序如“魔獸精靈”和“魔獸小強”就是用Lua來開發(fā)的。 Lua是《魔獸世界》的官方擴展接口語言。另外一個比較有意思的是SONY推出的次世代掌機PSP,在固件程序被破解后可以運行自制程序,于是有人將 Lua移植到PSP上(Lua Player),并擴展了Lua的接口,方便游戲程序的二次開發(fā),于是,PSP上基于Lua的自制游戲和小軟件如同雨后春筍般大量出現(xiàn)。

出于工作的需要,更多的是個人興趣,我會在一段時期內(nèi)學習研究Lua的應用,并會陸陸續(xù)續(xù)記錄一些心得,希望能夠與有共同愛好的朋友交流。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多