1

Тема: Примеры падения QVCLua

В этой теме просьба выкладывать примеры скриптов (желательно максимально короткие), в которых используется QVCLua, и сценарии, при которых рушится терминал QUIK.

Буду в конце-концов придумывать что с этим делать.

2 (2017-04-30 12:39:15 отредактировано CyberTrader)

Re: Примеры падения QVCLua

W8, QUIK 7.10.0.76, QVCLua v.0.5.0-rev.2

function C()
  if not MainForm then return end
  MainForm:Release()
  MainForm = nil
end

function OnInit()
  MainForm = vcl.Form{OnClose=C}
  vcl.ComboBox(vcl.GroupBox(MainForm, {}), {})
  PrintDbgStr('Show...')
  MainForm:Show()
  PrintDbgStr('Show: OK')
end
function OnStop()
  C()
  vcl = nil
end
function main()
  while true do sleep(100) end
  --while vcl do sleep(100) end
end

1. Запускаем скрипт.
2. Закрываем форму. Ждём некоторое время, чтобы там закрылось всё как надо... (Но это не поможет ))
3. Останавливаем кнопкой остановить.
4. Опять ждём некоторое время. Это важно, т.к., если выждать некоторое время перед повторным запуском, то скрипт вероятнее завалится.
5. Запускаем скрипт и получаем "General Protection Fault"
6. В дебагере при этом будут строки:

Show...
Show: OK
Show...

Т.е., скрипт валится на :Show()

Кстати, VCLua 0.3.5 на этом примере ведёт себя стабильней.