在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
lua是一个脚本语言,它的编译器非常简单。一般而言,lua在游戏里面使用得比较多。它可以通过类似于脚本的形式把函数的功能串行起来,实现很多不可思议的效果。现在关于lua的资料比较少,主要有两个文档可以介绍一下。一个是云风翻译的lua手册,另外一本就是lua作者编写的《Programming in lua》。可是很多朋友看完了这两本资料之后还是不太清楚该怎么使用。今天乘着有空,可以把自己的一些使用经验来写一写。 我们可以把lua看成是lib库,在使用的时候把这个lib添加到自己的工程里面就可以了。这里介绍的方法是windows下用code::blocks编译lua的方法,因为code::blocks是跨平台的,linux下编译方法也差不过。 (1)下载lua工程,下载地址为http://www.lua.org/ftp/,可以选择一个比较新的版本,太旧的版本语法不一样,我选择的是最新的lua-5.2.1.tar.gz); #include <stdio.h> #include "lua.h" #include "lualib.h" #include "lauxlib.h" #include "luaconf.h" int main(int argc, char* argv[]) { lua_State* L = luaL_newstate(); luaL_openlibs(L); luaL_dofile(L, "D:\\__Development\\C\\delve\\Test_lua\\test.lua"); lua_close(L); return 0; } (8)此时,我们还需要创建test.lua文件,内容如下,
function show() local b = {} local index for index = 1,10,1 do print(index) end end show() (9)编译执行后,输出1,2,3,4,5,6,7,8,9,10就表示成功了。 这样就结束了吗?没有,我们目前做的是编一个lib,然后其他工程中使用这个lib来执行lua,我们也可以直接用lua 的源代码加入项目来编译。 (1)建立Console application工程,名为Test_lua_with_src; #include <stdio.h> #include "lua_src/lua.h" #include "lua_src/lualib.h" #include "lua_src/lauxlib.h" #include "lua_src/luaconf.h"
第二种方法可以更方便的修改lua自身的代码来扩展lua,也不需要建立工程的时候添加lib和.h路径。 -------------------------------------------------------------------------------------------------------------- 上面的代码只是执行了一个lua程序,与lua进行交互,参考一个测试代码; #include <stdio.h> #include "lua_src/lua.h" #include "lua_src/lualib.h" #include "lua_src/lauxlib.h" #include "lua_src/luaconf.h" int main(int argc, char *argv[]) { char buff[256]; int error; lua_State* L = luaL_newstate(); luaL_openlibs(L); //luaopen_base(L); //luaopen_table(L); //luaopen_io(L); //luaopen_string(L); //luaopen_math(L); //printf("xxxx\n"); while (fgets(buff, sizeof(buff), stdin) != NULL) { error = luaL_loadbuffer(L, buff, strlen(buff),"line") || lua_pcall(L, 0, 0, 0); if (error) { fprintf(stderr, "%s", lua_tostring(L, -1)); lua_pop(L, 1); } } lua_close(L); return 0; } 执行后,可直接输入lua的语句,例如:print(1+2) ,返回结果为3.
|
请发表评论