我需要知道如何使用lua_setglobal()函数将变量声明为Lua全局变量。
你需要查看Programming in Lua这个页面:第一个例子。做个类比,可以想象C或C++程序在一个小盒子里运行,并且可以访问其函数、变量等。lua_State基本上是一种访问Lua“盒子”中正在执行的内容的方法,它可以让你将两种语言结合起来。
以下是一个简单的例子,可能会有所帮助...
lua_State* L=lua_open(); // create a Lua state
luaL_openlibs(L); // load standard libs
lua_pushstring(L, "nick"); // push a string on the stack
lua_setglobal(L, "name"); // set the string to the global 'name'
luaL_loadstring(L, "print(name)"); // load a script
lua_pcall(L, 0, 0, 0); // call the script
lua_State
对象吗?我需要在这里得到帮助。正如我在下面所述,我认为在我窃取lua_State
结构体指针的时候应该为L->l_G->_defaultmeta.value.gc
设置一个值,但由于某种原因,没有一个被窃取的结构体设置了它。 - Stefan Falk
lua_State
对象吗?我目前正在尝试钩入 Lua 初始化过程,并发现至少有三个不同的lua_State
对象。我不理解的是——这和我的问题有关——为什么L->l_G->_defaultmeta.value.gc
总是NULL
。这三个结构体都已经通过了,但在该时间点上没有一个值被设置。但这不可能,因为原始的 Lua 代码看起来像 - Stefan Falk