我只是想在我的Lua脚本中调用一些特定的函数。
一个简单的脚本:
msg("hello")
function showamsgbox()
msg("123")
end
我只是想让我的C应用程序只调用showamsgbox()
但不要运行msg("hello")
因为当我加载此脚本时它会显示一个msgbox!那么如何做到这一点来避免这种情况呢?
答案 0 :(得分:4)
你做不到。该脚本在运行时定义了两个变量:a
和geta
。回想一下,function geta()...end
与geta=function()...end
相同。
答案 1 :(得分:0)
当最初在lua_State中评估脚本时,将调用a = 9。
如果重用该lua_State实例,则可以检索该函数并在不重新初始化的情况下调用它。
答案 2 :(得分:0)
您似乎想要沙盒脚本。在运行它们之前,只需给它们一个合适的独立环境。它可能是空的,也可能包含对您希望它们使用的函数的引用。他们可以在他们的环境中随意写作,但不会影响你的。然后只需获取OnLoad
或您要调用的任何用户函数的值并调用它。