好大的风

2010年07月1日

2009年3月16日发表于新浪开发者博客:来玩玩Lua吧!

Filed under: 你要去哪里 — 好大的风 @ 11:08 上午

早就想研究一下这个新潮的东西了,无奈Lua的资料实在是很少,目前Lua最新版是5.1,Lua网站上那本书是第一版,主要是针对5.0的,好多API和5.1都不一样,我还是老老实实买了一本纸版的第二版,研究了一下,弄出来第一个比较有意义的Lua应用:
cat sum.lua

function sum(a,b)
return a-b
end

cat main.c
#include
#include
#include
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"

int main(int argc,char **argv)
{
int a=100,b=200,c=0;
void *s;
lua_State *L=luaL_newstate();
luaL_openlibs(L);
luaL_loadfile(L,”sum.lua”);
lua_pcall(L,0,0,0);
lua_getglobal(L,”sum”);
lua_pushnumber(L,a);
lua_pushnumber(L,b);
if(lua_pcall(L,2,1,0) != 0) {
printf(“%s\n”,lua_tostring(L,-1));
exit(2);
}
if(!lua_isnumber(L,-1)) exit(3);
c=lua_tonumber(L,-1);
lua_pop(L,1);
printf(“a+b=%d\n”,c);
}

以上就是用C语言程序来调用Lua脚本实现的函数的做法,编译方法:
gcc -o main main.c /path/to/liblua.a -I /path/to/lua/include/ -lm -ldl
最后的-lm 和 -ldl不能少。
好书还是要买的,一本书才几十块钱,但好书让你学到知识和技能,这些知识和技能所能够创造的价值,可不是几十块钱这个数量级的。

评论暂缺 »

还没有任何评论。

这篇文章上的评论的 RSS feed TrackBack URL

留下评论

Powered by WordPress