Форумы

Главная / Подключение своей библиотеки на C++, к терминалу Quik через Lua

QuantPro Platform

Главная Форумы Программисты Подключение своей библиотеки на C++, к терминалу Quik через Lua

В этой теме 3 ответа, 2 участника, последнее обновление Аватар (Pepper) Pepper 1 год, 6 месяцев назад.

Просмотр 4 сообщений - с 1 по 4 (из 4 всего)
  • Автор
    Сообщения
  • #2514
    Аватар (Option Prime)
    Option Prime

    Участник

    Добрый день!

    Разрабатываю внешнее приложение на C++, которое должно работать в связке с терминалом Quik и получать из него различную информацию.

    Читал в некоторых местах, что такое возможно, но конкретного примера, как подключить свою DLL, написанную на C++ к квику, так и не нашел. Не могли бы Вы поделиться информацией, а еще лучше показать примеры кода, как это лучше всего сделать. Заранее большое спасибо.

    #2524
    Аватар (Pepper)
    Pepper

    Администратор форума

    Добрый день.

    Тема достаточно объемная и тянет на целую статью, что, вероятно, в ближайшем будущем мы и сделаем. А для начала можно воспользоваться, например, этим ресурсом:

    https://quik2dde.ru/viewforum.php?id=14

    В свое время именно отсюда я брал всю необходимую информацию.

    Если познания в C++ довольно поверхностные, то есть видео на эту тему, где все доходчиво объясняется:

    http://smart-lab.ru/blog/387954.php

    Также еще можно глянуть сюда:

    https://quikluacsharp.ru/qlua-c-cpp-csharp/vzaimodejstvie-lua-i-biblioteki-dll-napisannoj-na-c-c/

    • Этот ответ был изменен 1 год, 6 месяцев назад от Аватар (Pepper) .
    #2532
    Аватар (Option Prime)
    Option Prime

    Участник

    Спасибо за ответ. Просмотрел информацию на предложенном ресурсе https://quik2dde.ru. Нашел там много чего полезного.

    Хотелось бы также услышать ваше мнение, касательно информации, изложенной в этой теме https://quik2dde.ru/viewtopic.php?id=201 (Стек построенный на Memory Mapped File)

    Насколько приемлем такой способ построения обмена информацией между программами ?

    #2561
    Аватар (Pepper)
    Pepper

    Администратор форума

    Не очень понятно, чего именно хочет добиться автор той темы. Он пишет о стеке, значит, вероятно он пытается организовать передачу данных Lua стека из библиотеки, запущенной в рамках процесса Quik в некий внешним процесс через mapped file. Это один из способов межпроцессного взаимодействия, наряду с shared memory, named pipes и другими, который можно использовать для таких целей.

    Тем не менее, в его подходе есть архитектурный изъян. Он пытается передать данные стека сразу, без предварительной обработки, тем самым перенося особенности организации данных на второй процесс. Я бы поступил иначе. Гораздо более правильно организовать интерфейс между процессами через тот же memory mapped file, но более приближенный к предметной области, а всю работу по преобразованию данных в/из Lua реализовать внутри библиотеки, запускаемой квиком.

    Другой недостаток этого подхода заключается в том, что все вышеперечисленные способы межпроцессного взаимодействия ограничены рамками одной операционной системы, и передать данные, процессу, запущенному на другой машине, не получится. Для этих целей лучше использовать сетевое взаимодействие.

    • Этот ответ был изменен 1 год, 6 месяцев назад от Аватар (Pepper) .
Просмотр 4 сообщений - с 1 по 4 (из 4 всего)

Вы должны авторизироваться для ответа в этой теме.

Инвестирование с QuantPro Platform

Оптимальное соотношение между доходностью и риском