在tolua++中进行Lua调用,可能会涉及到未暴露的函数。

我有一个 Lua 脚本,在我的 C++ 应用程序中使用了一些函数。我将此脚本与 2 个不同的 C++ 应用程序一起使用,并希望能够保护某个调用不会通过 tolua 绑定。例如:

  • 假设我有两个 C++ 应用程序: MyApp1 和 MyApp2
  • 我使用 tolua++ 对 MyApp1 进行了包装,并像在 Lua 脚本中这样调用其中一个函数:
MyApp1:MyFunc()

现在我将此相同的脚本用于 MyApp2,该应用程序没有此类型的任何 tolua++ 绑定。然后我遇到了这种类型的错误:

[string "MyApp2.lua"]:157: attempt to index global 'MyApp1' (a nil value)

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

pcall( MyApp1:MyFunc() )

但是脚本仍然在这一行崩溃。

点赞
用户1847592
用户1847592
如果 MyApp1 存在则执行以下操作:

MyApp1:MyFunc()


2013-04-15 13:53:32
用户2198692
用户2198692
如果 MyApp1 存在,则执行以下代码:

if MyApp1 then MyApp1:MyFunc() end


上述代码可以运行,但是否将应用程序相关和非相关脚本分开更为清晰?这样就不必再去担心这个问题了。

2013-04-15 13:54:03