第一个Lua程序
1. Lua简介Lua是一个轻量化的脚本语言,体积小,速度快。 Lua须嵌入在其他宿主语言(如:C、C++)中来执行,因此功能也很容易灵活扩充。 Lua是个动态型别语言,这表示不需要对变量宣告类型,而每个值都有自己所代表的类型。 Lua常见用于游戏开发与嵌入式开发,例如编写游戏AI、剧情脚本,把程序模块化。 使用Lua编写程序中可模块化之部分的好处是,一旦模块内容有所变更,无需重编译主程序就可直接使用新版本的模块。 2. Lua环境配置
在想使用Lua优化我们的软件开发过程之前,我们需要对开发环境做一些配置, 本教程中使用Visual Studio 2010建置C++程序,在需要嵌入Lua脚本语言时需要引用Lua的library。 1 生成Lua library首先到Lua官方下载页面下载Lua library的源代码?http://www.lua.org/download.html 本教程中使用的版本是Lua 5.3.1?http://www.lua.org/ftp/lua-5.3.1.tar.gz 下载好之后用VS新建一个静态库工程,选项中不勾选"先行编译头文件(Pre-Compiled Header)"和"MFC"。 将刚才下载的压缩包内之src目录中的所有文件,除了lua.c和Makefile外,全导入到静态库工程中。 接下来对静态库工程属性进行配置, 进入工作列选单中的"属性" -> "c/c++" -> "高级" -> "编译为",点击下拉选单选择"编译为C++代码(/TP)" 如此就可以在其他程序使用此lib时,直接从C++中调用C的头文件,否则,在C++程序中需要以加入extern "C" 的方式宣告具有C连结来载入C的头文件,表示将头文件以C的规范编译。 最后就可以建置工程,生成lib。 2 配置主程序之工程属性新建一个实现Lua的工程。 在工程目录下建立include目录,把Lua库的几个头文件复制到include目录底下: lua.h lauxlib.h lualib.h luaconf.h 接着对此工程属性作配置,到"属性" -> "连结器" -> "输入" -> "其他相依性" 加入刚刚生成的lib。 "忽略特定的预设程式库"中可选择性的加入LIBCMT.lib 和MSVCRT.lib。 3. 编写代码现在我们可以开始编写嵌入Lua的程序了,以下给出了一个简单的Hello World示例。 #include "includelua.h" #include "includelauxlib.h" #include "includelualib.h" #include "windows.h" void main(int argc,char* argv[]) { lua_State *pLua = luaL_newstate(); // Lua5.2后的版本遗弃lua_open(),改用luaL_newstate() if(!pLua) { printf("Failed to open Luan"); return; } luaL_openlibs(pLua); const char *buf="print('Hello World!')"; luaL_dostring(pLua,buf); lua_close(pLua); system("pause"); return; }输出将会是?Hello World! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |