Variable (Все сообщения пользователя)

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

Страницы: 1
QIUK 9.8.0.11 выходит при attach MSVC 2019 debugger - защита или проблема?
 
Цитата
nikolz написал:
Я делаю это в редакторе SciTe, который написан на луа
Здравствуйте, nikolz!
Интересно.Никогда не работал со SciTe.Т.е. в нём можно, не запуская квик, войти на сервер, вызвать функцию DLL, которая в свою очередь вызовет функцию типа CreateDataSource() и потом сможет обработать возвращаемые по callback  или без callback данные, отлаживая DLL под MSVC ?
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
 
Решили ли проблему, когда CreateDataSource() тупо молчит, если в данном "классе-инструменте-интервале" на сервере нет данных? Или всё таки возвращает какой-то признак отсутствия данных?
QIUK 9.8.0.11 выходит при attach MSVC 2019 debugger - защита или проблема?
 
Цитата
Anton Belonogov написал:
Variable, добрый день.

Действительно, в Рабочем месте QUIK, начиная с версии 9.7.0, добавлена защита от отладки.
Мы можем зарегистрировать пожелание на добавление сообщения с соответствующим предупреждением при попытке подключения отладчика. Уточните, пожалуйста, регистрируем такое пожелание?
Здравствуйте!
Да, зарегистрируйте пожалуйста. Предупреждение было бы полезно, чтобы не терять время.

НО! Просьба зарегистрировать и пожелание отключить такую иррациональную "защиту". Кому надо что-то сломать самом КВИКЕ - тот будет ломать с отладчика нулевого кольца. А так, эта "защита от отладки" только мешает разрабатывать приложения для QUICK, и, соотвественно снижает интерес к среде и базу пользователей.

Я отлаживаю СВОЮ DLL под QUIK и мне пришлось даунгрейдиться до 9.2.3.15, чтобы  была возможность это нормально делать.  Попросите перестать создавать трудности для программистов на голом месте.

Спасибо.
QIUK 9.8.0.11 выходит при attach MSVC 2019 debugger - защита или проблема?
 
никаких сообщений при этом не пишет. Просто пропадает окно. Наверное опять дружелюбие интерфейса - надо где-то дополнительно покопаться, чтобы понять в чём проблема.
QIUK 9.8.0.11 выходит при attach MSVC 2019 debugger - защита или проблема?
 
Цитата
TGB написал:
Цитата
Variable написал:
защита или проблема?
   Поддержка отвечала что это защита.  Но если при этом не выдается внятная диагностика, то это ошибка QUIK (в части выдачи сообщений диагностики).
Благодарю за ответ. Теперь понятно...

... Да ёшкин кот! Что ж они всё время накручивают проблем для программистов??? И так этот ЛУА на любителя, так ещё и от высокоуровневых дебагеров зачем-то теперь защищаются. В чём смысл-то? Кому надо поломать - всё равно воспользуется низкоуровневыми, а для нормальных программеров - просто ещё больше гемора, которого и так в QUIK/LUA  многовато (в сравнении с MT). Защищать надо там, где реально надо, а не создавать проблемы для нормальных людей. Чем они там думают?
QIUK 9.8.0.11 выходит при attach MSVC 2019 debugger - защита или проблема?
 
Необходимо отлаживать свою DLL под MSVC 2019.

Попытка приаттачиться вызывает выход Quik 9.8.0.11

Обновился, называется...

С версией 9.4.2.1 такого не происходит.

Есть идеи, что это, и что можно сделать, чтобы можно было отлаживать в новых версиях?
Пустая таблица от CreateDataSource
 
https://forum.quik.ru/messages/forum10/message63711/topic2397/
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
 
Цитата
nikolz написал:
и еще...
Если Вы в таблицу текущих торгов  установите
все доступные классы  и все инструменты и все параметры
то вы все доступные инструменты получите в  колбеке  onParam.      
Колбэк возникает тогда, когда поступают данные с сервера брокера. Если по инструменту брокер отмалчивается -колбэка не будет. Мне кажется вы не понимаете сути проблемы с молчанием сервера вместо отказа, и так или иначе предлагаете варианты с таймаутом. Тем не менее, благодарю за помощь, ещё раз убедился, что поддержка не зря признала проблему и обещала решение "когда-нибудь".
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
 
Цитата
nikolz написал:
Вы не сможете выбрать больше, чем указано справа в строчках "Классов доступно" "Инструментов доступно" "Параметров доступно"
Если создавать, к примеру, "таблицу текущих торгов" и нажать кнопки "добавить всё"(все доступные инструменты и доступные параметры) - то создаётся таблица со всеми ~10 тыс инструментами и параметрами. Т.е. получается выбрать всё.  Все классы и все инструменты. Как и в функциях getClassesList() и getClassSecurities().

Другое дело, что таблица постепенно будет заполняться тем, на что сервер брокера не "отмалчивается".
Цитата
nikolz написал:
Кроме этого, инструмент может не торговаться, т е он будет в списках, но по нему не будет изменяющейся текущей информации.Это тоже можно проверять.
К сожалению, это не "проверка", а такое же ожидание по таймауту.  А вообще ,надеялся, что подскажете способ программно проверить доступность информации, а не вручную ,через создание и менеджмент окон.

А так, пока не вижу разницы... похоже, при создании ТТТ на 10 тыс инструментов терминал подписывается на всё, а там уж какая информация придёт и заполнит соотв. строки. А почему пустая строка - пусть смотрит и думает пользователь.
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
 
Цитата
Да классов много и инструментов много.
Но не все доступны конкретному пользователю.
Функция CreateDataSource()  не предназначена для обнаружения запрещенных для Вас классов и инструментов.
На мой взгляд (и опыт) функция, которая так или иначе "обещает перезвонить", должна это делать, если сделана корректно и дружелюбно к пользователю.
Хотя бы потому что заранее неизвестно, по какой причине нет ответа. Запрещены какие-то классы или какие-то другие причины. Если запрещена - так и надо отвечать.


Цитата
nikolz написал:
я так и делаю. Если подписка возможно и нужна, то подписываюсь.

И как вы это делаете? Как проверяете, что подписка возможна?
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
 
Цитата
nikolz написал:
DDE - это способ обмена данными между приложениями . По-существу это клиент-серверный обмен внутри компьютера.
Да, собственно это и имел ввиду в своём сообщении. Знаю, как в принципе работает DDE. Но буду использовать, если не будет более удобного способа.


Цитата
nikolz написал:
Например, в квике DDE это практически единственный   разумный способ получить доску опционов или всю таблицу текущих торгов .
Для реализации своих замыслов, я написал DLL , запускаемую скриптом с парой строк. Всё остальное делается через мою DLL и моё приложение (запускаются функции квика, луа и прочее. Но вот CreateDataSource() работает некорректно, из-за чего и возникла эта тема. Печально удивился 5-летней тишине после обещаний довести функцию до ума.


Цитата
nikolz написал:
Непонятно, как это - данных нет на сервере, а Вы их запрашиваете.
В API квика есть функции получения классов инструментов и списка инструментов в каждом классе. Всего примерно тысяч 10. Но отзываются - примерно половина. Остальные - молчат. Естественно, что в ТТТ и прочих таблицах отображаются те, для которых данные всё-таки поступили, и только по ним можно что-то передать в стороннее приложение по DDE или ODBC. А вот по половине "молчащих" инструментов - совершенно неясно, почему они молчат. То ли период не тот и надо подождать ,то ли данных в принципе нет и не будет. Но всё это заканчивается замедлением работы программы ,вынужденной опрашивать и ждать таймаутов. :(
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
 
Цитата
nikolz написал:
Если используете колбек, то данные получаете поэлементно.
-------------------------
Если используете DDE, то данные приходят блоками по 16384 элемента.
----------------------
Обнаружить наличие данных можно  на первом же блоке.
-------------------------
Время приема одного элемента по DDE  не более 10 мкс.
-----------------------
Время приема блока данных 16384 не более 0.1 секунды.
---------------------
Зачем ждать годами, вместо того, чтобы изучить СИ и сделать  то, что хотите.
---------------------------------
"Без труда не бывает не ... я."
Я недавно познакомился с LUA и QUIK. Поправьте меня, если не прав. Но, насколько успел разобраться, DDE - это просто интерфейс получения данных, которые уже существуют локально, в терминале. Во всех функциях они всегда предварительно запрашиваются. А CreateDataSource() - наиболее "близкая" функция к источнику данных на сервере. Она позволяет получать данные, которых нет в уже существующих настройках, таблицах или данных. Всё остальное - "обёртки" к внутренним подпискам терминала, включая DDE.Через DDE доступно то, что уже доступно терминалу и локальные данные существуют. Проблема возникает когда запрашиваемых данных по инструменту нет не только локально, но и на сервере.  И вместо какого-либо извещения об этом - просто глухая тишина, которую неизвестно как интерпретировать, а только отбивать по таймауту.
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
 
Цитата
Daniil Pozdnyakov написал:
Цитата
Variable написал:
Здравствуйте! Прошло 5 лет. Скажите пожалуйста, появились ли функции, позволяющие определять что данных по инструменту нет и ответа от CreateDataSource() не будет? Чтобы не ждать на каждый запрос по 20-30 секунд?
Здравствуйте.

На текущий момент функционал не реализован. Когда будет, в данной ветке форума появится соответствующее сообщение с номером версии терминала.
В современном мире попросить подождать 5 лет, а потом ещё 5 лет - это значит "никогда". :(
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
 
Цитата
Variable написал:
Здравствуйте! Прошло 5 лет. Скажите пожалуйста, появились ли функции, позволяющие определять что данных по инструменту нет и ответа от CreateDataSource() не будет? Чтобы не ждать на каждый запрос по 20-30 секунд?
Стоит ли ждать ответа?
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
 
Здравствуйте! Прошло 5 лет. Скажите пожалуйста, появились ли функции, позволяющие определять что данных по инструменту нет и ответа от CreateDataSource() не будет? Чтобы не ждать на каждый запрос по 20-30 секунд?
Страницы: 1
Наверх