lua快速入门(二)

  lua语法简单,思路清晰,可以很好的描述我们的思想。

但其做为脚本语言最终也是要嵌入进我们的系统,才能为我们满足需求发光发热。

那我们现在就来看看lua要怎么与我们的c/c++系统相结合吧。

 

  lua有几个简单的api可以很容易就可以和c/c++揉合到一起,当然,我们这里只关注最简单的

几个函数,具体深入还是要看用户手册。在这里只是提供一个helloworld。

 

  lua_State  Lua解释器

  lua_open  打开一个lua解释器,返回lua_State指针

  luaL_openlibs 加载默认lua库

  luaL_dofile  解释执行脚本文件

  luaL_dostring  解释执行脚本字符串

  lua_close 释放lu解释器

 

 完整代码如下:

 

// luaRules.cpp : 定义控制台应用程序的入口点。
//

extern "C" {
#include 
<lua/lua.h>
#include 
<lua/lualib.h>
#include 
<lua/lauxlib.h>
}


#pragma comment(lib,"libLua.lib")

/* the Lua interpreter */
lua_State  
* L;

int main ( int argc, char *argv[] )
{
    
int sum;

    
//创建一个指向Lua解释器的指针。
    L = lua_open();

    
//函数加载Lua库
    luaL_openlibs(L);

    
//加载脚本
    luaL_dofile(L,"test.lua");

    
//执行字符串
    luaL_dostring(L,"print(a)");

    
//关闭 释放资源
    lua_close(L);

    getchar();

    
return 0;
}

 

a='hello world!'  --lua文件很简单,就这一句


 以上代码有几点要注意的

1)引入库的头文件时记得extern "C",当然也可以修改源码中Lua_API ,这个宏

2)库文件的名称可能不一定,因为我自己编译了lua,名称故意搞得不一样,以示区别

3)这一点最莫名其妙,为什么调试运行的时候提示变量未定义呢,而直接运行就没有问题呢?

posted @ 2009-06-20 00:36  冷侃  阅读(2916)  评论(0编辑  收藏  举报