四川大学出版社级别:Lua

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 08:30:25

第一个Lua程序

分类于 Lua, 代码人生 | 733 次点击 | 发表评论 »由 Apex 发表于 2006-10-29

.lua测试脚本

在编写第一个Lua程序之前,我们先编写一个.lua脚本以供调用,代码如下:

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

其中,两个连续的减号意味着这是一行注释。我们期望执行这个.lua脚本的结果是在屏幕上打印一串“Hello Lua !”的字符串。

提示:多行注释使用“--[[”开始,以“]]”结束。

内嵌Lua解释器

现在我们来写一个最简单的控制台程序,并在其中内嵌Lua解释器,运行该程序,可以执行test.lua脚本,在屏幕上打印出我们希望的结果。先来看代码,然后再解释代码内容:

下载: 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。将这两个文件放到同一个目录下,在命令行模式执行testlua.exe,就可以看到我们期望的输出了!

就是这么简单!!下一次,我们将尝试在.lua脚本中调用主程序(testlua.exe)内部的C函数~~

编译Lua库并配置开发环境

分类于 Lua, 代码人生 | 1,275 次点击 | 发表评论 »由 Apex 发表于 2006-10-21

要在自己的程序中使用Lua,我们必须将Lua解释器核心编译到自己的程序中来,无论是直接编译到主程序中,还是作为外部DLL调用,总之,第一件事情是编译Lua解释器核心。

说明:以后的操作如果没有特别注明,就是在Windows平台上进行的。

首先,到Lua官方网站下载最新的Lua源代码,得到的是一个.tar.gz。可以用流行的压缩软件如WinZip,WinRAR,或者开源的7z(推荐使用)来解开。解开的目录中有一个src目录,整个Lua核心代码就在这里了。

我们在Windows平台上拟使用Visual C++6.0来进行试验,但是src目录中并没有VC6使用的工程文件。这个问题很好解决:在VC6中新建一个Win32 StaticLibrary静态库工程,建议工程名称设置为liblua,工程路径指向Lua的src目录,最好的方式是先设置工程名称,然后修改工程路径(为什么?你试试就知道了 -:) )。在随后的工程设置向导中,不要加入任何设置,即,不要勾选“Pre-Compiled Header”和“MFCSupport”选项。

接下来,将所有src中的所有 .c (lua.c除外)和 .h 文件加入到工程中,编译,就可以得到我们想要的静态库 liblua.lib 文件了。

在我们自己的软件项目中,只需要 liblua.lib 和 几个头文件就可以开发了, 所以我们需要把这些文件整理一下,放到合适的位置。我是这样放的:

建立include目录,然后在include目录下建立lua目录,将下列文件复制到lua目录下:

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

建立和include目录同级的lib目录,将编译好的 liblua.lib 放到这里。可以参考下图:


图中,exe和dll两个目录是打算用来存放自己写的测试程序的。

这样,我们的开发环境就配置好了,下一次,我们将开始做第一个调用lua脚本的小程序,来真正体验lua的威力。

Lua,一种强大的轻量级脚本语言

分类于 Lua, 代码人生 | 1,195 次点击 | 评论(2) »由 Apex 发表于 2006-10-18

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

Lua是葡萄牙语中的“月亮”的意思,发音为:LOO-ah。

Lua是一个强大的轻量级脚本语言,主要设计来扩展应用程序功能。当然,Lua也经常被作为一个通用、独立的语言使用。Lua是免费软件,而且是开源的,目前版本为5.1。

所谓的轻量级,意思是,仅仅需要在你的程序中增加额外约50Kb的开销,就能够为你的应用程序增加脚本执行功能。

Lua的应用极为广泛,举两个例子:一是火热的网络游戏《魔兽世界》,就使用Lua作为应用界面扩展语言,很多外挂程序如“魔兽精灵”和“魔兽小强”就是用Lua来开发的。Lua是《魔兽世界》的官方扩展接口语言。另外一个比较有意思的是SONY推出的次世代掌机PSP,在固件程序被破解后可以运行自制程序,于是有人将Lua移植到PSP上(Lua Player),并扩展了Lua的接口,方便游戏程序的二次开发,于是,PSP上基于Lua的自制游戏和小软件如同雨后春笋般大量出现。

出于工作的需要,更多的是个人兴趣,我会在一段时期内学习研究Lua的应用,并会陆陆续续记录一些心得,希望能够与有共同爱好的朋友交流。