c++调用大漠系列:c++给LUA传递参数

发布时间:2018-10-7 18:12

2013 0 0

1149

用户头衔:VIP会员

关注 私信
本帖最后由 1149 于 2018-10-7 21:08 编辑

1,传递普通变量
[mw_shl_code=cpp,true]int main(void)
{
        lua_State *L = lua_open();
        lua_State *L1 = lua_open();
        luaopen_base(L);//加载基础库
        luaopen_string(L);//加载字符串库
        luaopen_table(L);//加载表处理库
        lua_register(L, "test", test);
        
        lua_pushstring(L, "全局变量值");//在堆栈里push一个值
        lua_setglobal(L, "name");//从堆栈上弹出一个值,并将其设为全局变量 name 的新值。
        
        if (luaL_loadfile(L, "main.lua"))
        {
               
                printf("加载错误:%s\n", lua_tostring(L, -1));
        }


        if (lua_pcall(L, 0, 0, 0))
        {
                printf("调用错误:%s\n", lua_tostring(L, -1));
        }

        getchar();

        
        return 0;
}[/mw_shl_code]



2,传递表
[mw_shl_code=cpp,true]int main(void)
{
        lua_State *L = lua_open();
        luaopen_base(L);//加载基础库
        luaopen_string(L);//加载字符串库
        luaopen_table(L);//加载表处理库
        lua_register(L, "test", test);
       
        lua_newtable(L);//创建一个表
       
        lua_pushnumber(L, 1);
        lua_pushnumber(L, 22);
        lua_settable(L, -3);
       
        lua_pushnumber(L, 2);
        lua_pushnumber(L, 33);
        lua_settable(L, -3);
       
        lua_setglobal(L, "name");//将你创建的表设置为全局变量
       
        if (luaL_loadfile(L, "main.lua"))
        {
               
                printf("加载错误:%s\n", lua_tostring(L, -1));
        }


        if (lua_pcall(L, 0, 0, 0))
        {
                printf("调用错误:%s\n", lua_tostring(L, -1));
        }

        getchar();

       
        return 0;
}[/mw_shl_code]


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
B Color Smilies

扫码加入QQ群

842848001@qq.com
842848001

GMT+8, 2024-10-25 10:28

Powered by Discuz! X3.4© 2001-2017 Comsenz Inc.

网站内容仅供用于学习和交流,请遵循相关法律法规

QQ在线咨询|手机版|挂茶馆易语言论坛 ( 蜀ICP备15031375号 )