在Lua中调用tolua ++中可能未公开的函数

时间:2013-04-15 13:20:57

标签: c++ lua call tolua++

我有一个Lua脚本,它使用我的C ++应用程序的一些功能。 我将此脚本与2个不同的C ++应用程序一起使用,我希望能够保护不受tolua约束的调用。

例如: - 假设我有两个C ++应用程序:MyApp1和MyApp2 - 我使用tolua ++制作了MyApp1的包装器,并在Lua脚本中调用了它的一个函数:

MyApp1:MyFunc()

现在我使用与MyApp2相同的脚本,该脚本没有此类型的任何tolua ++绑定。 然后我得到这种类型的错误:

  

[string“MyApp2.lua”]:157:尝试索引全局“MyApp1”(零值)

所以我希望Lua在调用此方法时不要向我发送错误。 我试着用:

pcall( MyApp1:MyFunc() )

但是剧本一直在崩溃。

2 个答案:

答案 0 :(得分:2)

if MyApp1 then 
  MyApp1:MyFunc() 
end

答案 1 :(得分:1)

if MyApp1 then
   MyApp1:MyFunc()
end

上面会有效,但是分离依赖于应用程序的脚本和独立脚本是不是更清晰?那样你就不必担心了。