1

我有一个使用我的 C++ 应用程序的一些功能的 Lua 脚本。我将此脚本与 2 个不同的 C++ 应用程序一起使用,并且我希望能够保护未通过 tolua 绑定的调用。

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

MyApp1:MyFunc()

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

[string "MyApp2.lua"]:157: 尝试索引全局 'MyApp1' (一个 nil 值)

所以我希望 Lua 在调用这个方法时不要给我一个错误。我尝试使用:

pcall( MyApp1:MyFunc() )

但是脚本一直在这条线上崩溃。

4

2 回答 2

2
if MyApp1 then 
  MyApp1:MyFunc() 
end
于 2013-04-15T13:53:32.043 回答
1
if MyApp1 then
   MyApp1:MyFunc()
end

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

于 2013-04-15T13:54:03.403 回答