我只想在我的Lua脚本中调用一些特定的函数。怎么做?

时间:2012-03-08 10:55:51

标签: lua

我只是想在我的Lua脚本中调用一些特定的函数。

一个简单的脚本:

msg("hello")
function showamsgbox()
msg("123")
end

我只是想让我的C应用程序只调用showamsgbox()但不要运行msg("hello")因为当我加载此脚本时它会显示一个msgbox!那么如何做到这一点来避免这种情况呢?

PS:它只是一个例子。有时候我想让用户在我的程序中创建自己的插件。但是我不希望他们在函数之外写一些东西(我想用函数来决定做什么。例如函数OnLoad()意味着它将在我加载时运行)。如果有功能之外我无法控制它们!

3 个答案:

答案 0 :(得分:4)

你做不到。该脚本在运行时定义了两个变量:ageta。回想一下,function geta()...endgeta=function()...end相同。

答案 1 :(得分:0)

当最初在lua_State中评估脚本时,将调用a = 9。

如果重用该lua_State实例,则可以检索该函数并在不重新初始化的情况下调用它。

答案 2 :(得分:0)

您似乎想要沙盒脚本。在运行它们之前,只需给它们一个合适的独立环境。它可能是空的,也可能包含对您希望它们使用的函数的引用。他们可以在他们的环境中随意写作,但不会影响你的。然后只需获取OnLoad或您要调用的任何用户函数的值并调用它。