Сделайте вызов в Lua для потенциально не выставленной функции в tolua++

У меня есть скрипт Lua, который использует некоторые функции моего приложения C++. Я использую этот скрипт с двумя различными приложениями C++, и я хотел бы иметь возможность защитить вызов, чтобы не быть связанным через tolua.

Например: - допустим, у меня есть два приложения на C++: MyApp1 и MyApp2 - я сделал обертку MyApp1 с tolua ++ и вызываю одну из ее функций, например, в скрипте Lua:

MyApp1:MyFunc()

Теперь я использую тот же сценарий с MyApp2, который не имеет привязки tolua ++ этого типа. И тогда я получаю ошибку такого типа:

[строка "MyApp2.lua"]:157: попытка индексировать глобальное "MyApp1" (нулевое значение)

Поэтому я бы хотел, чтобы Lua не выслал мне ошибку при вызове этого метода. Я пытался использовать:

pcall( MyApp1:MyFunc() )

Но сценарий продолжает сбой на этой линии.

2 ответа

Решение
if MyApp1 then 
  MyApp1:MyFunc() 
end
if MyApp1 then
   MyApp1:MyFunc()
end

Выше будет работать, но не чище ли отделить зависимые от приложения и независимые скрипты? Таким образом, вы не должны беспокоиться об этом.

Другие вопросы по тегам