Блог им. 3Qu

Смена x86 Quik 7.27.2.1 на x64 Quik 8.4.1.6. Пляски вокруг DLL.

    • 21 марта 2020, 19:30
    • |
    • 3Qu
  • Еще

Признаться уже достал этот 32-битный Quik 7. Работать стало почти невозможно, начал подвисать практически на пустом месте. А если повесить на Quik Lua, а к Lua прицепить DLL, то вообще все эпизодически вставало. DLL-ки, вообще-то, многопоточные и освобождают вызывающие потоки (события) Lua практически за миллисекунды, но если таких событий много Quik встает. Хотя, он и без Lua и DLL тоже регулярно встает.)

Были и другие причины ухода от 32-бит Quik, но это уже связано с брокером и другими факторами.
Итак, новый брокер — новый 64-битный Quik 8.4.1.6. Наконец сбылась мечта идиота!
Что можно сказать, — х64 Quik работает гораздо лучше, все равно временами немного подвисает, но, вроде, некритично. После логин-пароля, прежде чем работать надо подождать, — потоки обезличенных сделок начинают работать только через 3-4 минуты после старта. В общем, с этим все более-менее ОК.
Следующий этап — надо переводить весь подключаемый к Quik софт с х86 на х64, и если есть исходники, то никаких проблем не должно появиться. Если вы не используете в своем софте каких либо дополнительных DLL, то все должно ограничиваться двумя действиями.
1. Меняете в проекте С++ в разделе Файлы ресурсов 32-битную версию файла Lua5.1.lib на 64-битную версию Lua5.1.lib,
2. Выставляете в свой свойствах проекта компиляцию в x64. Можно даже так:

Смена x86  Quik 7.27.2.1 на x64 Quik 8.4.1.6. Пляски вокруг DLL.


И все должно скомпилироваться и заработать.
При компиляции вылезает масса некритичных предупреждений (это все, при необходимости, можно исправить позднее) о несответствии формата int формату Lua, однако все действительно без ошибок компилируется. Но, при подключении к Lua не работает.
Lua нам как ошибку выдает примерно следующее — «приложение не является 32-битным… и не может...».
Хм. Неужели в х64 терминале Lua осталась 32-битной? Ладно, грузим старую 32-бит версию DLL — ошибка та-же самая. Бред какой-то.
Читаем инет — предлагается сунуть в папку терминала другую, правильную, версию Lua5.1.dll. М-да, сунуть то сунем, но Quik тут же обнаружит, что версия не та, обновится и заменит ее своей родной. Может кому это и нормально, но нормальные герои всегда идут в обход, и меня этот вариант не устроил.
Если кого такой вариант устроит, то «правильные» х64 Lua5.1.dll и Lua5.1.lib можно скачать с сайта Lua ( luabinaries.sourceforge.net/ ).
Для тех, у кого не получилось будет следующая часть. Но это если не получится.

★14
ты серьезно считаешь, что проблема quik была в 32 битах?
avatar

meat

meat, я бы аккуратно сказал, и в этом тоже.) х86 программы по определению не оч хорошо работают на 64-бит процессорах.
avatar

3Qu

https://arqatech.com/ru/support/files/quik-workstation/
в каждой  версии  описание недоделок,   если нажать на цифарки
Скачиваете новейшую версию квика,  настраиваете файлы IP.cfg   ключи подкидываете, настраивате  конфиг ключей, и  готово. За редким исключением  у  любого брокера взлетит новая версия.  Если не взлетит, значит у вашего брокера старый 32 битный сервер. Бегите от такого брокера. Потому  как за полдня торгов  32 бита на сервере переполняются, при текущей волатильности.
но Quik тут же обнаружит, что версия не та, обновится и заменит ее своей родной. Может кому это и нормально, но нормальные герои всегда идут в обход, и меня этот вариант не устроил.
так я не понял, удалось решить проблему с обновлением на неправильную версию dll? Думаю, самый простой вариант — в поддержку написать, пусть пофиксят. Не самому же бинарник квика патчить…
avatar

tranquility

tranquility, да, удалось. Сделал из glua.dll qlua.lib, и lib прицепил к программе как ресурс.
avatar

3Qu

&*@#^%^@& #($&#(    #&^$*#&^  #&^$&*^$^@

сам бы не додумался  name.dll менять на name.dll
avatar

Kot_Begemot


....все тэги
2010-2020
UPDONW