Сергей (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
ACCESS VIOLATION в Quik 9.3.3.3 при запуске скрипта без сторонних DLL
 
nikolz, спасибо, так действительно работает. Привычка с бейсика, нумеровать 10,20,30

В самом деле, бывают же ситуации, когда колонка больше не нужна или нужно вставить колонку между другими. Да и 8.3 работает.
ACCESS VIOLATION в Quik 9.3.3.3 при запуске скрипта без сторонних DLL
 
Владимир, ну вот да.
Ошибка то воспроизводится легко, может разработчики обратят внимание.
ACCESS VIOLATION в Quik 9.3.3.3 при запуске скрипта без сторонних DLL
 
Цитата
Владимир написал:
Да, ещё момент: ГДЕ ИМЕННО Вы это дело красите? Всё это дело нужно выполнять в потоке мейна.

Да, все верно, именно в main . Выше выкладывал код всего скрипта, там видно.

Сейчас запустил в Quik 8.3.1.38 — все отлично работает.

Разработчики помогите! )
ACCESS VIOLATION в Quik 9.3.3.3 при запуске скрипта без сторонних DLL
 
Цитата
Владимир написал:
Сергей, Во-первых, уберите нафиг RGB - эта, с позволения сказать, функция возвращает трёхбайтовое число, старший байт которого - B, а младший - R. Во-вторых, в SetColor добавьте ещё два аргумента: -1, он же QTABLE_NO_INDEX.
Переделал вот так
Код
SetColor(KomCentrID,1,20,14286809,65793,-1,-1) --зеленый

Красит 100-200 ячеек, дальше ACCESS VIOLATION

ACCESS VIOLATION в Quik 9.3.3.3 при запуске скрипта без сторонних DLL
 
Цитата
Владимир написал:
Сергей, Во-первых, уберите нафиг RGB - эта, с позволения сказать, функция возвращает трёхбайтовое число, старший байт которого - B, а младший - R. Во-вторых, в SetColor добавьте ещё два аргумента: -1, он же QTABLE_NO_INDEX.
С RGB понял идею - передавать сразу значения, не используя доп функцию.
Кстати, есть уже опыт, что использование RGB  может вызывать ACCESS VIOLATION или это вопрос к разработчикам?

С QTABLE_NO_INDEX не понял
Мне же нужно закрасить конкретную ячейку и значит нужно передать конкретные значения. По количеству вроде везде всех аргументов хватает.
ACCESS VIOLATION в Quik 9.3.3.3 при запуске скрипта без сторонних DLL
 
Кстати, если вместо ячейки
Код
SetColor(KomCentrID,1,20,RGB(217,255,217),RGB(1,1,1),RGB(220,220,220),RGB(0,0,0)) --зеленый
закрашивать целую строку
Код
SetColor(KomCentrID,1,QTABLE_NO_INDEX,RGB(217,255,217),RGB(1,1,1),RGB(220,220,220),RGB(0,0,0)) --зеленый
тогда все работает
ACCESS VIOLATION в Quik 9.3.3.3 при запуске скрипта без сторонних DLL
 
Цитата
Daniil Pozdnyakov написал:
bstone, здравствуйте.

Просьба прислать полный код используемого скрипта, запуская который сталкиваетесь с ошибкой AV для анализа
Такая же ошибка. Удалось воспроизвести ее и выделить.
на QUIK 9.4.2.1 и 9.5.0.42 и 9.2.0.121
LUA 5.4.1

Полный код:

Код
dofile(getScriptPath() .. "\\dll_test_crash.lua")
is_run = true                  

function OnInit()                                                   

   KomCentrID = AllocTable()                                       
   AddColumn (KomCentrID, 10, "Описание/Действие", true, QTABLE_STRING_TYPE,60)   
   AddColumn (KomCentrID, 20, "Результат", true, QTABLE_STRING_TYPE,20)   
   CreateWindow(KomCentrID)   
   SetWindowPos(KomCentrID,1100,250,400,500)
   
end

function main()                                             
   while is_run do                                          
      Body()                                             
   end
end


function OnStop()                                 
    is_run = false            
end
Код
function Body()                  

sleep(100)

InsertRow(KomCentrID,1)
SetCell(KomCentrID, 1, 10,  "COMPLETE")
SetCell(KomCentrID, 1, 20,  "COMPLETE")
SetColor(KomCentrID,1,20,RGB(217,255,217),RGB(1,1,1),RGB(220,220,220),RGB(0,0,0)) --зеленый

end

Через примерно 100-200 вызовов Body(), QUIK либо закрывается, либо ошибка ACCESS VIOLATION

Посмотрите плиз, дампы также могу выслать.

Страницы: 1
Наверх