3Qu
3Qu личный блог
18 февраля 2021, 20:35

Quik 8.11.0.66. Вот так номер. Шо, опять Win32, опять 32 бит?

Сегодня брокер Альфа обновил Квик с версии 8.8… до версии Quik 8.11.0.66. Появился кроме Lua 5.3.5 еще и Lua 5.4.1. Отлично, мне бы радоваться, давно этого хотел. Но...
Запустил рабочую в Quik 8.8 версию системы использующую DLL, И увидел вот это:
Quik 8.11.0.66. Вот так номер. Шо, опять Win32, опять 32 бит?
Во первых, ничего не работает даже в уже отлаженной версии Lua 5.3.5. Вы видите на картинке, что Lua не нравится 64-бит DLL, и она хочет 32-битную.
Во вторых, то ли Quik стал опять 32-х битным (пока не смотрел), то ли Lua в Quik стала снова 32-х битной, а это означает, что все надо переделывать с 64 бит на 32 бит. С чем боролись, на то и напоролись. Вечный кайф.
Признаться, сильно лень переделывать все опять на 32 бит, тем более, многих библиотек для DLL С++ для 32 бит просто не существует в природе.
О моей борьбе с этим буду сообщать. Наверно, дополнением этого топика. Подписывайтесь, чтобы ничего не пропустить. Мало ли, м.б. решение и найдется.



18 Комментариев
  • nicknh
    18 февраля 2021, 20:43

    Квик не стал 32-битным. Если Вы запустили dll, скомпилированную под lua 5.3 в режиме 5.4, то и не будет работать.

    Необходимо собрать ее для lua 5.4 или продолжать использовать в режиме lua 5.3. По крайней мере никаких проблем не наблюдается не на 8.11 ни на 8.12.

  • Никто
    18 февраля 2021, 20:58
    Люди по уровням торгуют и наторговывают, танцевать с этими программами. Или вон трейдинг вью, там всегда все работает.
  • nicknh
    18 февраля 2021, 21:02

    3Qu, Вы всегда можете проверить какая версия lua используется при запуске, выведя значение константы _VERSION. Не думаю, что ваш брокер решил что-то сделать с дистрибутивом. 32-бит версия будет иметь проблемы с 19 знаками в номерках заявок срочного рынка.

    Данная ошибка просто говорит о несовместимости библиотек. А не то, что она 32 бит.

  • bstone
    18 февраля 2021, 21:28
    Не похоже, что 32-бит версию хочет. Это просто обобщенное сообщение об ошибке. Такое вылезет, если вместо DLL подсунуть текстовый файл, например.
  • Винни Пух
    18 февраля 2021, 22:39

    Чую копать нужно в сторону «путей», что то там не ладно.

     

  • Prophetic
    19 февраля 2021, 09:55
    У  меня после перехода на новую версию только автологин «сломался» (починил быстро). С Lua-скриптами никаких проблем не возникло.
      • Prophetic
        19 февраля 2021, 16:02
        3Qu, Не дурак, читать умею. У меня роботы на С# работают. Lua-скрипты нужны для работы коннектора, и dll там подключена. в частности core.dll для 5.3, и «да» — 64-bit
          • Prophetic
            19 февраля 2021, 17:58
            3Qu, Да, подобное сообщение действительно сбивает с толку, и может привести к неправильному направлению поиска проблемы. Хорошо, что у Вас все получилось в результате.
          • bstone
            20 февраля 2021, 11:59
            3Qu, это системное сообщение, к 32-битности оно не имеет отношения, как я и говорил. Просто система сначала проверяет формат .exe/dll файла на соответствие спецификации PE Win32. Если он не соответствует, то выдается соответствующее сообщение. А уже в формате PE Win32 система может узнать платформу win32/x64 и т.п.

            С путями, по сути, у вас тоже косяк. Надо их делать относительными к .lua скрипту, а не рассчитывать на то, что по умолчанию будет то, что вам нужно. В это случае проблем бы с изменением базового пути при обновлении Quik не было бы.
              • bstone
                20 февраля 2021, 12:47
                3Qu, не уловили суть. Надо строить пути к своим DLL относительно getScriptPath(). Тогда вам будет все равно, что там очередная версия квика с путями по умолчанию сделает.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн