呵离 2015-12-15 13:45 采纳率: 0%
浏览 4700
已结题

luaL_register替换lua_newtable() + luaL_setfuncs() 不行

int luaopen_libname(lua_State *L)  
{  
    static const luaL_Reg funcs[] = {  
    {"func1", func1},  
        {"func2", func2},  
    {NULL, NULL}  
    };  
#ifdef lua5.1   
//5.1 下直接使用luaL_register 就好   
    luaL_register(L, "libname", funcs);  
#else //lua5.2   
    lua_newtable(L);   
    //先把一个table压入VS,然后在调用luaL_setfuncs就会把所以的func存到table中   
    //注意不像luaL_register这个table是个无名table,可以在的使用只用一个变量来存入这个table。   
    //e.g local clib = require "libname". 这样就不会污染全局环境。比luaL_register更好。   
    luaL_setfuncs(L, funcs, 0);  
#endif   
    return 1;  //返回table   

}  

网上有人给出了这个答案, 我用lua5.1 调用luaL_register() 是没用问题的可以正确运行,但我用lua5.3 调用后面的lua_newtable() 和luaL_setfuncs()没有用是什么原因?>

main 函数是这样

 int main()
 {
 lua_State* L = luaL_newstate();
 luaL_openlibs(L);
luaopen_libname(L);
 if(luaL_dofile(L,"main.lua"))
     printf("error /n");
 }

求解答啊!!!!!!查了很多资料都没有说明

  • 写回答

3条回答 默认 最新

  • devmiao 2015-12-15 15:13
    关注
    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况