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

 
Alexey Volchanskiy:
Я так понял, это что-то а-ля кооперативная многозадачность? Коды посмотрю, но зуб даю, там используются указатели )) Если так, то с MQL мимо кассы.
В С`шном варианте любимом эмбедщиками (http://www.dunkels.com/adam/pt/about.html) - 100% сделано макросами. Затруднюсь сказать можно ли использовать те-же идеи с MQL препроцессором, но вроде как нет там особого "криминала".
About protothreads
  • www.dunkels.com
"Many of us use the switch/case construct to explicitly implement concurrent state machines in our code. The [protothread] macros merely provide a level of abstraction above that so that the code appears more linear and the overall logic more visible." Dan Henry summarizes how protothreads work and how they are used in a discussion about...
 
Макросами чего? Шарпа, си винапи, макроассемблер? Препроцессор MQL != (не равно) препроцессор любого компилятора exe
 
Могу сказать определенно (я уже бросал идею где-то в посте ранее) - сделать можно! Можно, и легально, только была бы задача и спонсор ))) Не dll, пара хедеров.
 
alexsis78:
Макросами чего? Шарпа, си винапи, макроассемблер? Препроцессор MQL != (не равно) препроцессор любого компилятора exe

Макросами препроцессора С. Собственно вот они __все__ :

struct pt { lc_t lc };
#define PT_WAITING 0
#define PT_EXITED  1
#define PT_ENDED   2
#define PT_INIT(pt)          LC_INIT(pt->lc)
#define PT_BEGIN(pt)         LC_RESUME(pt->lc)
#define PT_END(pt)           LC_END(pt->lc);    \
                              return PT_ENDED
#define PT_WAIT_UNTIL(pt, c) LC_SET(pt->lc);    \
                              if(!(c))           \
                                return PT_WAITING
#define PT_EXIT(pt)          return PT_EXITED

Local continuations implemented with the C switch statement:

typedef unsigned short lc_t;
#define LC_INIT(c)   c = 0
#define LC_RESUME(c) switch(c) { case 0:
#define LC_SET(c)    c = __LINE__; case __LINE__:
#define LC_END(c)    }

на первый взгляд особых противоречий с MQL нет.

взято отсюда : https://github.com/contiki-os/contiki/wiki/processes

 
Да. Глубокий смысл этих макросов запрятан в местах, где-то доступных только самым продвинутым хакерам. Впечатляет.
 
alexsis78:
Макросами чего? Шарпа, си винапи, макроассемблер? Препроцессор MQL != (не равно) препроцессор любого компилятора exe
На шарпе макросов считай что и нет, только условная компиляция + всякие сервисные примочки. На MQL макросы близки к плюсовым по возможностям.
 
alexsis78:
Могу сказать определенно (я уже бросал идею где-то в посте ранее) - сделать можно! Можно, и легально, только была бы задача и спонсор ))) Не dll, пара хедеров.

1. Что можно сделать? Четко и конкретно плз )

2. Как это поможет мне писать более прибыльных роботов? 

 
Alexey Volchanskiy:

1. Что можно сделать? Четко и конкретно плз )

2. Как это поможет мне писать более прибыльных роботов? 


Алексей, это предложение сотрудничать?

ЗЫ: Написать класс треда через пуш в OpenCL - это есть у меня идея. Не реализовывать я ее сам для себя не хочу, т.к. не торгую. Я просто пишу софт.
 
alexsis78:

Алексей, это предложение сотрудничать?

Непонятно, что вы предлагаете. Указатели? Они мне не нужны, будут нужны для себя, уйду в dll. Потоки? Не верю, что можно их сделать на MQL, на dll можно.

Кроме того, есть доступные платформы с потоками и указателями, нет смысла тут извращаться.

Так что уточните, что вы предлагаете и можете? 

 
alexsis78:

Алексей, это предложение сотрудничать?

ЗЫ: Написать класс треда через пуш в OpenCL - это есть у меня идея. Не реализовывать я ее сам для себя не хочу, т.к. не торгую. Я просто пишу софт.

Вы дописали про OCL, пока я отвечал. Можно сделать некоторый костыль, а что дальше? Как синхронизировать потоки? Где атомарные операции, семафоры и прочее, что MS вылизывала годами?

Как я написал, для сложных проектов проще уйти на платформу с полноценным C#, тем более она так же доступна для старта, как МТ4/5. Написал название в личку. 

Причина обращения: