У меня есть скрипт Lua, который использует некоторые функции моего приложения C ++.
Я использую этот скрипт с двумя различными приложениями C ++, и я хотел бы иметь возможность защитить вызов, чтобы не быть связанным через tolua.
Например:
— Допустим, у меня есть два приложения на C ++: MyApp1 и MyApp2
— Я сделал обертку MyApp1 с tolua ++, и я вызываю одну из его функций, например, в скрипте Lua:
MyApp1:MyFunc()
Теперь я использую тот же сценарий с MyApp2, который не имеет привязки tolua ++ этого типа.
И тогда я получаю ошибку такого типа:
[строка «MyApp2.lua»]: 157: попытка индексировать глобальное «MyApp1» (нулевое значение)
Поэтому я бы хотел, чтобы Lua не выслал мне ошибку при вызове этого метода.
Я пытался использовать:
pcall( MyApp1:MyFunc() )
Но сценарий продолжает сбой на этой линии.
if MyApp1 then
MyApp1:MyFunc()
end
if MyApp1 then
MyApp1:MyFunc()
end
Выше будет работать, но не чище ли отделить зависимые от приложения и независимые скрипты? Таким образом, вы не должны беспокоиться об этом.