26

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

naquad пишет:

Хм. Действительно, bit.dll загрузился, но iup.dll всё так же не грузится.
[url]http://clip2net.com/s/5a75w3[/url] - загрузка iup.dll.

И снова: при чем тут luaD_growstack или luaF_newproto ? почему вы вобще про эти функции вспомнили? ну мне любопытно просто, что вас навело на такой вариант.

Бибилиотека iup из приведенной вами ссылки отлично работает, а приведенная вами ошибка никак не связана с недостающими функциями, вы просто неправильно пишете require (извините, я сразу не братил на это внимание).

Вот в [url=https://quik2dde.ru/viewtopic.php?id=25]этой теме про iuplua в QUIK[/url] подробно написано как исталлировать и использовать эту библиотеку.

Для пробы я снова откопировал чистый QUIK в отдельную папку, добавил в эту папку прокси lua5.1.dll файл из первого поста этой темы, из архива Lua версии 5.1.4-46, на который вы давали ссылку, скопировал файлы iuplua51.dll и iup.dll. После чего взял тестовый скрипт из [url=https://quik2dde.ru/viewtopic.php?id=25]темы про библиотеку iup[/url] - и он отлично запустился.

Что еще у вас не работает? делитесь.

27

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

Ещё раз. Имеем установленный терминал 6.6.0.118. Делаем:

1. заменяем QLua.dll на QLua.dll из 6.6.1 . mbul мне он был прислан как lua5.1.dll, отсюда и путаница
2. в proxy-dll раскомментируем все функции (luaD_growstack, luaF_newproto, ...), собираем
3. получившуюся библиотеку копируем в папку Quik'a как lua5.1.dll и lua51.dll
4. после вышеуказанного библиотеки грузятся все
5. ???
6. PROFIT!!!

28

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

4. после вышеуказанного библиотеки грузятся все

Пока, честно говоря, так и осталсь не понятным какие же библиотеки не грузились по причине иенно "неподходящей версии QUIK".
Ну в смысле вы про это писали, конечно, однако, как выясняется, все указанные вами отлично загружаются в версии QUIK 6.6.0.118. Файл qlua.dll у меня такой: "версия продукта - 6.6.0.0", "версия файла 1.1.0.12".

mbul мне он был прислан как lua5.1.dll,

WTF??!

29 (2013-06-04 20:06:28 отредактировано admin)

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

admin пишет:

Бибилиотека iup из приведенной вами ссылки отлично работает, а приведенная вами ошибка никак не связана с недостающими функциями, вы просто неправильно пишете require (извините, я сразу не братил на это внимание).

Пардон, это я лопухнулся, но сути дела не меняет:

[url]http://clip2net.com/s/5aH3ge[/url] - результат с iuplua51.dll (тот же).

admin пишет:

Пока, честно говоря, так и осталсь не понятным какие же библиотеки не грузились по причине иенно "неподходящей версии QUIK".

Как видно, IUP. socket/core.dll и ssl грузятся, но какого-то чёрта скрипт жрет гору памяти. Вот тут уже не знаю, может взять более новые версии или попытаться пересобрать всё это дело, но пока так.

admin пишет:

Ну в смысле вы про это писали, конечно, однако, как выясняется, все указанные вами отлично загружаются в версии QUIK 6.6.0.118. Файл qlua.dll у меня такой: "версия продукта - 6.6.0.0", "версия файла 1.1.0.12".
mbul мне он был прислан как lua5.1.dll,

См. выше, socket/core.dll и ssl грузятся, но жрут память.

admin пишет:

WTF??!

mbul прислал мне новый qlua.dll

С ним скрипт работает без всяких утечек и зависаний.

30 (2013-06-04 17:34:16 отредактировано mbul)

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

admin пишет:

WTF??!

Это уже я промазал smile по запарке со своего тестового контура отправил архив, но сути не меняет  - с 6.6 она работает и все что надо экспортирует.  Версию фронта (и qlua) 6.6.1 можно попросить на support@quik.ru

31

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

mbul пишет:

Версию фронта (и qlua) 6.6.1 можно попросить на support@quik.ru

На форуме quik.ru в несольких ветках сегодня про какой-то "секретный" 6.7 писали арковцы. Такой секретный, что даже нигде не выложен. Загадочно просят обратиться к брокеру за обновлением. Интересно, дадут ли его на support?

32

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

naquad пишет:

но сути дела не меняет:
[url]http://clip2net.com/s/5aH3ge[/url] - результат с iuplua51.dll (тот же).

Приведите полный текст вашего скрипта, пожалуйста, на котором такую ошибку получаете.

naquad пишет:

mbul прислал мне новый qlua.dll
С ним скрипт работает без всяких утечек и зависаний.

Понял, спасибо. Значит надо искать это обновление.

33

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

admin пишет:

Приведите полный текст вашего скрипта, пожалуйста, на котором такую ошибку получаете.

Его на скриншоте видно, это и есть весь текст:

require('iuplua51')

34 (2013-06-04 20:55:16 отредактировано admin)

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

В предыдущих сообщениях я вам 2 раза дал ссылку на ветку, где есть правильные варианты как надо писать require для iup
[url]http://quik2dde.ru/viewtopic.php?id=25[/url]
Посмотрите ее уже.

(проблемка в том, что dll-файл назван iuplua51.dll, а функция регистрации библиотеки в Lua luaopen_iuplua, что не совсем "канонически". Поэтому нужно использовать несколько расширенный синтаксис подключеня библиотеки или переименовать iuplua51.dll в iuplua.dll)

35

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

package.cpath = '.\\?51.dll;' .. package.cpath
require('iuplua')

Результат на родной 6.6.0.118 не поменялся, а в новой работает.

36

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

Начиная с QUIK версии 6.16.0 аналогичная прокси-библиотека lua5.1.dll стала входить в состав дистрибутива QUIK, так что использование сторонних библиотек станет проще прямо "из коробки", а данный топик останется лишь как подробное описание зачем это надо.

37 (2015-06-28 16:17:25 отредактировано zhivchick)

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

Коллеги, приветствую!

Обновил 6.14 на 6.17. Видимо, у меня своеобразный брокер, это произошло только сейчас.
Перестал запускаться wxLua, пишет, что модуль c:\QUIK\wx.dll не найден. Но он есть и там, и в папке со скриптами, и где угодно еще. Игры с package.cpath ничего не дали. Методом тыка понял, что проблема в новой lua5.1.dll(собственно, поэтому пишу в эту ветку) - если вернуть ту, что шла в комплекте с wx, вроде стартует. Но пока непонятны подводные камни такого решения на текущей версии терминала, и хотелось бы сделать "правильно". Куда копать?

38 (2016-09-29 11:45:52 отредактировано sam063rus)

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

-

39

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

1. В версии 6.14 ее не было вообще, поэтому в папку квика копировал ту, что шла в архиве с wxLua. Кстати, весит такая 116КБ.  В 6.17 появилась родная(как написано выше в топике она идет начиная с 6.16, именно от 14.11)
2. require("wx")
Под играми с package.cpath я имею в виду конструкции вида(пробуем не сразу, а по очереди, очевидно)
package.cpath =package.cpath..";"..getWorkingFolder().."\\?.dll;"
package.cpath =package.cpath..";"..getScriptPath() ..().."\\?.dll;"
package.cpath = package.cpath..";./?.dll;"
package.cpath = getWorkingFolder().."\\?.dll;"
И еще насколько хватило фантазии. До апгрейда прекрасно работал вариант
package.cpath = package.cpath..";./?.dll;"
require("wx")
3. Скрипт изначально находится в папке c:\lua, wx.dll, как и все библиотеки wx - в корне папки квика.
Пробовал копировать все и везде(dll в папку со скриптом, скрипт в папку квика), результат нулевой.

ps. Видимо, для моих задач ограничения wxLua+Quik не так существенны, работает без особых проблем.

40 (2015-06-28 22:13:52 отредактировано swerg)

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

Посмотрел я внимательно на файл lua5.1.dll, который идёт в составе квика 6.17.1
И вот что я вам скажу: он зависит от библиотеки msvcr100.dll, которая с квиком не поставляется. Более того, ни один другой файл квика не зависит от этой библиотеки.
Подозреваю, что у вас нет библиотеки msvcr100.dll, не поставилась она ни с одной программой у вас. Из-за этого и не работает та lua5.1.dll, которая идёт с квиком.
Если всё так - то никакие package.cpath  тут не помогут, конечно.

Вижу для вас 2 выхода:
1) Взять файл lua5.1.dll из первого сообщения этой темы. Он по сути ничем не отличается от того файла, который идет в составе квика, такой же прокси, но у вас он запустится.

2) Загрузить и установить пакет, содержащий необходимые dll от VS2010 вот отсюда:
[url]https://www.microsoft.com/ru-ru/download/details.aspx?id=26999[/url]
(причем 32-х разрядную версию!)

Делать только один из пунктов, на выбор.

41

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

swerg, уровень анализа крутейший, спасибо!
Я нашел такую библиотечку в другом приложении, скопировал ее в папку Quik, и все заработало с родной lua5.1.

Обновление шлет и другие приветы, конечно, теперь остановка скрипта с wx сопровождается падением квика(что с моим обходным маневром, что с новой msvcr100.dll), но это уже мелочи жизни и бытовуха:)

42

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

Вместе с терминалом QUIK начиная с версии 6.6 штатно стала поставляться "прокси" библиотека lua5.1.dll, функционально аналогичная той, что была предложена в этой ветке.
В связи  с чем предложенное здесь решение потеряло актуальность, используем штатное решение.
Всем спасибо за внимание smile

43 (2019-11-22 11:46:47 отредактировано toxa)

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

admin пишет:

смысле? куда добавить?
А в API-плагинов такая возможность есть?

в плагинном апи квика более 150 функций (было в 2007 году, когда я это смотрел). там много что можно делать. это было бы классным подспорьем, но из lua получить на них указатель, чтобы это работало из любых версий quik - проблематично.

admin пишет:

Какие заявки не отправляются?

в квике есть окно "карман транзакций", так вот, в него можно добавлять транзакции, которые невозможно сформировать при помощи функции sendTransaction.

44

Re: Где взять lua5.1.dll? делаем ее на основе qlua.dll

чтобы получить указатель на это api, можно сделать прокси "с обратной стороны", что, в общем, актуализирует эту тему.