我的一片天

我的一片天
posts - 27, comments - 12, trackbacks - 0, articles - 16
   :: 首页 :: 新随笔 :: 联系 ::  :: 管理

Lua新手上路之瞎子摸象(DELPHI)

Posted on 2010-05-15 18:57 xyz 阅读(2812) 评论(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了。

 

 

Feedback

# re: Lua新手上路之瞎子摸象(DELPHI)  回复  更多评论   

2010-05-31 13:15 by 陈钧涛
谢谢楼主,正需要这个入门的材料

# re: Lua新手上路之瞎子摸象(DELPHI)  回复  更多评论   

2010-12-08 16:20 by turtle_2
LZ讲的很清晰,3Q
只有注册用户登录后才能发表评论。