Скачать MetaTrader 5

Не могу найти в справке про "Указатели на функции"

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Alexey Volchanskiy
24831
Alexey Volchanskiy  

Понадобилось посмотреть сабж, помню, он был реализован несколько месяцев назад. И не могу найти в справке, хоть убей. Куда этот раздел запрятали-то??

https://www.mql5.com/ru/docs/basis/types/object_pointers 

Документация по MQL5: Основы языка / Типы данных / Указатели объектов
Документация по MQL5: Основы языка / Типы данных / Указатели объектов
  • www.mql5.com
Основы языка / Типы данных / Указатели объектов - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Alexey Volchanskiy
24831
Alexey Volchanskiy  
Alexey Volchanskiy:

Понадобилось посмотреть сабж, помню, он был реализован несколько месяцев назад. И не могу найти в справке, хоть убей. Куда этот раздел запрятали-то??

https://www.mql5.com/ru/docs/basis/types/object_pointers 

Блин, проверил, думаю, может не работает? Все пашет, а в справке не найти. Или я под вечер уже невнимательный?

typedef int (*TFunc)(int,int);

int add(int x,int y)
{
    return(x+y);
}

void OnStart()
{
    TFunc pfunc = add;  
    Print(pfunc(4,5));    
}


 ******

Anatoli Kazharski
66489
Anatoli Kazharski  
Alexey Volchanskiy:

Понадобилось посмотреть сабж, помню, он был реализован несколько месяцев назад. И не могу найти в справке, хоть убей. Куда этот раздел запрятали-то??

Возможно вот здесь видели? >>> Новая версия платформы MetaTrader 5 build 1325: Торговля с хеджированием и тестирование по реальным тикам

20. MQL5: Для облегчения организации событийных моделей добавлена поддержка указателей на функции.

Список изменений в билдах MetaTrader 5 Client Terminal
Список изменений в билдах MetaTrader 5 Client Terminal
  • www.mql5.com
Автоматическое обновление доступно через систему LiveUpdate:.
Alexey Volchanskiy
24831
Alexey Volchanskiy  
Anatoli Kazharski:

Возможно вот здесь видели? >>> Новая версия платформы MetaTrader 5 build 1325: Торговля с хеджированием и тестирование по реальным тикам

20. MQL5: Для облегчения организации событийных моделей добавлена поддержка указателей на функции.

Да, именно здесь я и видел, это у меня есть. Но почему нет в справке? Билду уже более 8 месяцев.
Alexander Gandzyuk
171
Alexander Gandzyuk  
Alexey Volchanskiy:
Да, именно здесь я и видел, это у меня есть. Но почему нет в справке? Билду уже более 8 месяцев.
Это фича для "магов" и я удивлен вообще что ее допустили. Еще не хватало, чтобы каждый залетный начал калбэками терминал долбать, потоки заводить, сабкласить, вешать хуки.
Alexey Volchanskiy
24831
Alexey Volchanskiy  
alexsis78:
Это фича для "магов" и я удивлен вообще что ее допустили. Еще не хватало, чтобы каждый залетный начал калбэками терминал долбать, потоки заводить, сабкласить, вешать хуки.

Это не "настоящие" указатели на функции, это суррогат. Никаких кэлбков в терминал не получится. Есть даже ограничение на использование только со статическими функциями класса, если они в составе класса.

Я так понимаю, это некая подвижка в сторону делегатов из C#. На УФ в плюсах не тянет. 

Alexander Gandzyuk
171
Alexander Gandzyuk  
Alexey Volchanskiy:

Это не "настоящие" указатели на функции, это суррогат. Никаких кэлбков в терминал не получится. Есть даже ограничение на использование только со статическими функциями класса, если они в составе класса.

Я так понимаю, это некая подвижка в сторону делегатов из C#. На УФ в плюсах не тянет. 

Хахах. Очередной MT-шный прикол, типа &obj и class* ptr  ))) Я сразу как то не подумал что указатели на функции тоже суррогаты.
Метаквоты - мастера изящно на..бать, но вызов таки принят! ))) Сделаю из них и винбэки и класс для потока даже свой попробую замутить )))
Maxim Kuznetsov
13486
Maxim Kuznetsov  
alexsis78:
Хахах. Очередной MT-шный прикол, типа &obj и class* ptr  ))) Я сразу как то не подумал что указатели на функции тоже суррогаты.
Метаквоты - мастера изящно на..бать, но вызов таки принят! ))) Сделаю из них и винбэки и класс для потока даже свой попробую замутить )))
замути protothreads ( https://en.wikipedia.org/wiki/Protothreads ) - может выйдет толк. Нормальные нити без хака со стеком не сделать и от MQ чё-то неслыхать анонсов. А так какая-никакая, а многозадачность
Alexey Volchanskiy
24831
Alexey Volchanskiy  
Maxim Kuznetsov:
замути protothreads ( https://en.wikipedia.org/wiki/Protothreads ) - может выйдет толк. Нормальные нити без хака со стеком не сделать и от MQ чё-то неслыхать анонсов. А так какая-никакая, а многозадачность
Я так понял, это что-то а-ля кооперативная многозадачность? Коды посмотрю, но зуб даю, там используются указатели )) Если так, то с MQL мимо кассы.
Alexander Gandzyuk
171
Alexander Gandzyuk  
Maxim Kuznetsov:
замути protothreads ( https://en.wikipedia.org/wiki/Protothreads ) - может выйдет толк. Нормальные нити без хака со стеком не сделать и от MQ чё-то неслыхать анонсов. А так какая-никакая, а многозадачность
Ограничивает только невозможностью получить адрес функции. Как легально можно передать в CreateThread адрес своей какой-то void ThreadProc() , а? 
Я считаю что никак.
С одной стороны, в индюках бесплатно дали возможность использовать поток миллисекундного таймера. В совах, кстате, на канает. Там подход одна сова - один поток.
С другой стороны дали возможность нахерячить С код и скормить его в CL в виде задачи. 
Вот это, я считаю, реальный фундамент для написания всяких подложек и оберток для многозадачности.
Если будет подходящий заказ, сделаю. А так, я лучше порассуждаю под пивко )))
Alexander Gandzyuk
171
Alexander Gandzyuk  
Alexey Volchanskiy:
Я так понял, это что-то а-ля кооперативная многозадачность? Коды посмотрю, но зуб даю, там используются указатели )) Если так, то с MQL мимо кассы.
 К MQL оно ничего не имеет. Это просто концепция с обходом треда, который создается и контролится ядром ОС.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий