【发布时间】:2013-10-25 09:29:17
【问题描述】:
我在我的 C 应用程序中嵌入了 lua。 我正在从 C 端将一个变量推入堆栈,并希望在 lua 脚本本身中检索它。
我可以用什么来获取脚本文件中堆栈中的推送值?
C 代码:
// ...
result = lua_load(L, luaByteCodeReader, file, "script", "bt");
lua_pushinteger(L, session_id);
if( lua_pcall(L, 1, 0, 0) != 0 )
// ...
在脚本中我想检索 session_id 值
local session_id = ...
print "Start"
for i = 1, 10 do
print(i, session_id)
end
print "End"
【问题讨论】:
-
我不擅长使用 Lua API,但您不应该调用
luaL_setglobal()以使用变量名访问变量吗? (或者这被认为是“邪恶的”?) -
当从 C 传回时,
session_id值包含在多参数...(...中的第一个值)中。上述分配中的左侧应该被选中第一个 multivar-arg 并将其存储到session_id. -
这个问题与您之前的问题stackoverflow.com/questions/19553060/… 有何不同?
-
没有什么不同,我在检索脚本中的值时遇到了问题,但现在可以正常工作了,谢谢。