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

Make a call in Lua, on a potentially not exposed Function in tolua++

本文关键字:函数 调用 中对 Lua tolua++      更新时间:2023-10-16

我有一个Lua脚本,它使用了我的C++应用程序的一些函数。我将这个脚本与两个不同的C++应用程序一起使用,我希望能够保护一个不通过tolua绑定的调用。

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

MyApp1:MyFunc()

现在,我在MyApp2中使用了相同的脚本,它没有任何这种类型的tolua++绑定。然后我得到了这样一个错误:

[string"MyApp2.lua"]:157:尝试索引全局"MyApp1'"(零值(

因此,我希望Lua在调用此方法时不要向我发送错误。我尝试使用:

pcall( MyApp1:MyFunc() )

但剧本在这一行不断崩溃。

if MyApp1 then 
  MyApp1:MyFunc() 
end
if MyApp1 then
   MyApp1:MyFunc()
end

上面的方法是可行的,但将依赖于应用程序的脚本和独立的脚本分开不是更干净吗?这样你就不用担心了。