Сделайте вызов в 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
Выше будет работать, но не чище ли отделить зависимые от приложения и независимые скрипты? Таким образом, вы не должны беспокоиться об этом.