【发布时间】:2013-04-15 13:20:56
【问题描述】:
我有一个使用我的 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() )
但是脚本一直在这一行崩溃。
【问题讨论】:
-
第二个应用程序中的
MyApp1 = MyApp2怎么样。 -
@user1095108 - 在这种情况下 MyApp2 也是 nil,因为它没有任何 tolua++ 绑定。
-
@W.B.:是的,那么你需要
if测试。