Lua 使用压栈的方式,通过 C++向 Lua 传输数据。因此我们想为 Lua 环境设置全局的表变量时,可以这么做:
- //把环境变量导入到 lua 的全局表 "environ"
- lua_newtable(L);//创建一个表格,放在栈顶
- lua_pushstring( L, key );
- lua_pushstring( L, value );
- lua_settable( L,-3 );//弹出key,value,并设置到table里面去
- lua_pushnumber( L, ikey );
- lua_pushstring( L, value );
- lua_settable( L,-3 );//弹出key,value,并设置到table里面去
- lua_setglobal( L, "environ" ); // 设置全局表名
可以在lua脚本中看看我们写入的东西:
- table.foreach( environ, function(i, v) print (i, v) end )
|