Page 1 of 1

Plugin.SyncCall

Posted: Wed 11 Nov, 2015 23:15
by stasf
При попытке вызвать функцию Plugin.SyncCall из LUA-кода, вызванного с помощью MCTL_EXECSTRING,
получаю вот такое сообщение:

Code: Select all

=============================== Error ===============================¬
¦ C:\Users\stas\Documents\Projects\far\unicode_far\Release.32.gcc\   ¦
¦ plugins\LuaMacro\luamacro.dll:                                     ¦
¦ ...unicode_far\Release.32.gcc\plugins\Hiver\Artifacts\test4:8:     ¦
¦ attempt to call field 'SyncCall' (a nil value)                     ¦
¦ stack traceback:                                                   ¦
¦    ...unicode_far\Release.32.gcc\plugins\Hiver\Artifacts\test4:8:  ¦
¦ in function 'chunk'                                                ¦
¦    ...unicode_far\Release.32.gcc\plugins\LuaMacro\luamacro.lua:    ¦
¦ 308: in function <...unicode_far\Release.32.gcc\plugins\LuaMacro\  ¦
¦ luamacro.lua:304>                                                  ¦
¦--------------------------------------------------------------------¦
¦                               { OK }                               ¦
L====================================================================-
Это так и должно быть? Plugin.SyncCall действительно нельзя вызывать в этом контексте?

На всякий случай текст LUA-кода:

Code: Select all

local GUID, hInst, sHive, sTmpFile = ... 

local c = string.format("%s %p, %s, %s",  GUID,hInst, sHive, sTmpFile)
far.Message (c)

local ret = Plugin.SyncCall (GUID, hInst, sHive, "some command")

return ret

Plugin.SyncCall

Posted: Wed 11 Nov, 2015 23:33
by Shmuel
stasf wrote: Plugin.SyncCall действительно нельзя вызывать в этом контексте?
Можно вызывать. У меня работает. Только что запустил таким образом тест одного плагина из другого плагина (ни один из них не LuaMacro).
В чём дело у вас, затрудняюсь сказать.

Plugin.SyncCall

Posted: Thu 12 Nov, 2015 22:50
by stasf
Shmuel wrote:Можно вызывать. У меня работает.
Да - вроде заработало.
Просто я в качестве development-среды для минимизации MINFARMANAGERVERSION довольно древнюю сборку фара использовал (4134).
И в ней эта конструкция не работает...

Plugin.SyncCall

Posted: Thu 12 Nov, 2015 23:02
by Shmuel
stasf wrote: довольно древнюю сборку фара использовал (4134).
И в ней эта конструкция не работает...
Это работает, начиная с билда 3664.

Plugin.SyncCall

Posted: Fri 13 Nov, 2015 21:57
by stasf
Shmuel wrote: Это работает, начиная с билда 3664.
Ага - кажется разобрался - это я в ходе предыдущих изысканий слегка подпортил настройки development-среды.
В результате, не совпадали версии luafar3.dll и luamacro...