游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5475|回复: 6

初学 Lua 心得

[复制链接]

31

主题

249

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
发表于 2008-5-18 10:40:00 | 显示全部楼层 |阅读模式
初学 Lua ,在 VS2005 下 , Lua 5.1.3 。

遇到了不少问题。教程 4.0 的,示例不能直接在 5.1.3 上用 。 5.1.3里面已经没有 dofile 和 dostring 函数。无奈,舍弃教程。

找了一篇 5.X 的教程,还是问题。首先,找不到 luaopen_loadlib ; 其次,运行到 luaopen_io 就 Down 掉了。Google了很久,看了很多中文英文帖子,都没有实际解决。特发此帖,讲述一下我的解决方法。

对于第一个问题,看下 Lualib.h 才知道 luaopen_package代替了luaopen_loadlib
对于第二个问题,参考下 linit.c 的代码才发现应该用 lua_pushcfunction(L, luaopen_io);lua_pushstring(L, LUA_IOLIBNAME);lua_call(L, 1, 0); 代替。

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2008-5-18 12:48:00 | 显示全部楼层

Re:初学 Lua 心得

命名改得比较多,以官方文档给你的命名为准吧。老的API有的能用,有的不能,所以以现在的风格为准。现在的风格是以“lua_”和“luaL_”为前缀。
http://www.lua.org/manual/5.1/   这里有个列表

31

主题

249

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
 楼主| 发表于 2008-5-18 13:38:00 | 显示全部楼层

Re:初学 Lua 心得

纠正 dofile 变成了 luaL_dofile ,诸如此类,不是去掉了

2

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2008-5-19 16:29:00 | 显示全部楼层

Re:初学 Lua 心得

是的,是改前缀了。

0

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2008-5-24 19:30:00 | 显示全部楼层

Re: 初学 Lua 心得

我也跟楼主一样刚刚接触Lua,也遇到了楼主的luaopen_io就down掉的问题,原因是调用顺序的问题(实际上是环境表冲突的问题),在新版lua中,已经使用一个函数luaL_openlibs来加载基本的一些库,再lua5.1.3中这个函数的代码如下所示,揭示了库的加载顺序:

static const luaL_Reg lualibs[] = {
  {"", luaopen_base},
  {LUA_LOADLIBNAME, luaopen_package},
  {LUA_TABLIBNAME, luaopen_table},
  {LUA_IOLIBNAME, luaopen_io},
  {LUA_OSLIBNAME, luaopen_os},
  {LUA_STRLIBNAME, luaopen_string},
  {LUA_MATHLIBNAME, luaopen_math},
  {LUA_DBLIBNAME, luaopen_debug},
  {NULL, NULL}
};


LUALIB_API void luaL_openlibs (lua_State *L) {
  const luaL_Reg *lib = lualibs;
  for (; lib->func; lib++) {
    lua_pushcfunction(L, lib->func);
    lua_pushstring(L, lib->name);
    lua_call(L, 1, 0);
  }
}

31

主题

249

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
 楼主| 发表于 2008-5-28 12:50:00 | 显示全部楼层

Re:初学 Lua 心得

用 luaL_openlibs 就缺少灵活性。所以选择调用
    lua_pushcfunction(L, lib->func);
    lua_pushstring(L, lib->name);
    lua_call(L, 1, 0);

16

主题

88

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2008-8-11 16:56:00 | 显示全部楼层

Re:初学 Lua 心得

也想学,可惜没有资料,怎么弄哦。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 16:11

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表