我有一些在.lua文件中声明和初始化的函数。然后,当我收到信号时,我会从文件中读取名为string_t的变量,该变量包含要调用的函数的名称。问题是我不知道如何通过函数名称将函数推入堆栈或调用它。
例如:
test.lua
function iLoveVodka()
--some text
end
function iLoveFish()
--another text
end
C文件:
string_t a = "iLoveVodka()"
我如何仅通过函数名从C/C++代码中调用函数iLoveVodka()
?
lua_pcall
。 - Appleshelllua_getglobal(state, "iLoveVodka");
,或者将其名称推送到堆栈上并调用lua_getfield
。(不要害怕在 http://www.lua.org/manual/5.1/#index 上探索) - AppleshelliLoveVodka()
),而不仅仅是函数名称,则可以使用luaL_dostring
或其周围的宏函数来运行该代码块。 - Etan Reisner