Posted on 2010-05-15 18:57
xyz 阅读(2805)
评论(2) 编辑 收藏 引用 所属分类:
Lua
以前早就听说过lua,只是因为用不上就一直没涉及。最近考虑到可能用到,就学一学啦~
新手上路,自然是先看教材,吸取高人的经验。本人的原则是,首先要能让最简单的例程运行起来。
此教材是我学习lua的过程,希望对同样初次接触lua的人有所帮助,对于高手就一笑而过吧。
DELPHI要支持lua,先要下载lua的支持库,我是下载lua4delphi.zip来用的
把文件解压到一个目录,新建立的项目也存入这个目录.。当然你把它们放在另外的目录也可以,但是要把这个目录加到DELPHI的搜素目录里,还有把lua.dll复制到项目的目录里(必须依靠这个dll文件).
先看一个超简单lua的脚本test.lua
--注释是用双减号开始的,www.cnitblog.com/xkz
function add()
m="Yeah~~"
return m
end
上面是定义了一个lua的函数,返回m的串.我们就是要在delphi中调用这个函数来显示这个串.
新建立一个delphi项目,把lua.dll复制到这个测试项目存放的目录,在uses里增加lua, lualib, lauxlib, LuaUtils这几个文件的引用。
好了~我们准备开始瞎子摸象了。
拉一个button,然后在button事件里增加以下代码
var
L: Plua_State; //lua的引用类型,所有的lua方法都要用到这个
begin
L := lua_open; //建立一个lua的引用
lua_baselibopen(L); //引入lua的基础库函数
luaL_loadfile(L, 'test.lua'); //载入我们的lua脚本
lua_resume(L,0); //解析脚本到lua
lua_getglobal(L, 'add'); //设置即将要调用的lua脚本函数add
if lua_pcall(L, 0, 1,0)<>0 then //调用函数,没有参数,一个返回值 ,函数正确返回0
begin
showmessage(lua_tostring(L,-1)); //错误信息
end
else
showmessage(lua_tostring(L,-1));;//返回的参数
lua_pop(L, 1); //平栈,因为有1个返回值,避免内存泄露
lua_close(L);
end;
运行起来,点击button看看,是不是显示了lua返回的那个串,到这里就完成了简单的使用lua的过程。
摸到这里~是不是摸到大象的腿了~能运行就代表我们跟lua有了个最初的接触,但是lua能为我们解决什么问题,我们还不知道,但至少我们能用lua了。