Посмотрите в составе терминала полный пример DLL проекта на Visual C++ 6.0:
\MetaTrader 4\experts\samples\DLLSample\
а где сейчас лежит такой пример?
КАК ЗА 10 МИНУТ НАПИСАТЬ DLL БИБЛИОТЕКУ ДЛЯ MQL5 И ОБМЕНИВАТЬСЯ ДАННЫМИ?
А вот обмен данных с другой программой чисто средствами DLL не решается.
В DLL можно задавать разделяемые разделы для переменных, будут доступны из любых программ
#pragma data_seg("Shared")
double _Bid = 1.12345; // обязательно надо инициализировать
int Ticket = 123456;
#pragma data_seg() // конец раздела
#pragma comment(lincer, "/SECTION:Shared, RWS") // указываем линкеру включить раздел в DLL
---------------
Взято из Джеффри Рихтер "Windows для профессионалов", есть в инете
И второй способ, обмениваться через Memory Mapped Files
https://www.mql5.com/ru/code/818

- голосов: 34
- 2012.01.16
- o_o
- www.mql5.com
Посмотрите в составе терминала полный пример DLL проекта на Visual C++ 6.0:
\MetaTrader 4\experts\samples\DLLSample\
Он теперь тут лежит
\MQL4\Scripts\Examples\DLL\
В DLL можно задавать разделяемые разделы для переменных, будут доступны из любых программ
"Не грузи, да не загрузим будешь." ((С) М. Задорнов)
В этом разделе можно держать переменные, которые будут доступны нескольким экземплярам одной и той же программы.
Этот хитрый трюк не для повседневного использования, и не для начинающих.
"Не грузи, да не загрузим будешь." ((С) М. Задорнов)
В этом разделе можно держать переменные, которые будут доступны нескольким экземплярам одной и той же программы.
Этот хитрый трюк не для повседневного использования, и не для начинающих.
Блин, о чем вы вообще? В ДЛЛ делаем такой раздел, туда кладем переменные. Далее эту ДЛЛ может грузить, кто хочет. Рихтера почитайте, фантазий поубавится.
И чем трюк хитер? Я привел полный код, всего несколько строчек.
Блин, о чем вы вообще? В ДЛЛ делаем такой раздел, туда кладем переменные. Далее эту ДЛЛ может грузить, кто хочет. Рихтера почитайте, фантазий поубавится.
И чем трюк хитер? Я привел полный код, всего несколько строчек.
Держите себя в руках.
Это Вы невнимательно читаете Рихтера.
Для того чтобы переменная была доступна из других программ достаточно написать так:
extern "C" __declspec(dllexport) int Ticket = 123456;
Держите себя в руках.
Это Вы невнимательно читаете Рихтера.
Для того чтобы переменная была доступна из других программ достаточно написать так:
Будет создана копия для каждой из программ, которые грузят ДЛЛ.
Уважаемые форумчане, доброго времени суток и больших прибылей во-первых :)
А во-вторых хочу попросить Вашей помощи - я просмотрел все темы этого форума плюс форумы www.MQL4.com , конечно встречаются множество упоминаний о dll, но это как правило либо разговор профессионалов о конкретных моментах, либо описание dll как хранилища каких-то функций, к которым обращается только сам эксперт.
Так вот не могли бы Вы доступно объяснить мне и всем кого интересует эта тема:
как должен выглядеть самый что ни на есть простой DLL, который имеет 1 общее значение переменной (скажем double) и с экспертом и с внешней программой (желательно для C++ Builder), иными словами DLL реализующий связь эксперта с внешним миром.
Ведь в большинстве случаев начинающим нужна именно основа, которую потом самостоятельно можно изучать и дополнять, а именно:
- код эксперта в части описания и использования переменных DLL;
- код самой DLL (например на С++);
- код подключения и использования DLL непосредственно во внешней программе (желательно также на С++);
Необязательно описывать конкретные рабочие примеры (хотя это и не помешает), достаточно будет показать передачу значения переменной из внешней программы -> через DLL -> в эксперт и обратно.
Вот и все что нужно !
Полагаю, если Вы поможете осветить этот вопрос, то не я один буду Вам благодарен, кроме того на форуме явно есть профессиональные программисты для это не составит особого труда.
Заранее спасибо.
вот здесь, все что вам надо и даже больше, предоставляются абсолютно все исходники:

- 2013.01.22
- Sergey Sartakov
- www.mql5.com

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
А во-вторых хочу попросить Вашей помощи - я просмотрел все темы этого форума плюс форумы www.MQL4.com , конечно встречаются множество упоминаний о dll, но это как правило либо разговор профессионалов о конкретных моментах, либо описание dll как хранилища каких-то функций, к которым обращается только сам эксперт.
Так вот не могли бы Вы доступно объяснить мне и всем кого интересует эта тема:
как должен выглядеть самый что ни на есть простой DLL, который имеет 1 общее значение переменной (скажем double) и с экспертом и с внешней программой (желательно для C++ Builder), иными словами DLL реализующий связь эксперта с внешним миром.
Ведь в большинстве случаев начинающим нужна именно основа, которую потом самостоятельно можно изучать и дополнять, а именно:
- код эксперта в части описания и использования переменных DLL;
- код самой DLL (например на С++);
- код подключения и использования DLL непосредственно во внешней программе (желательно также на С++);
Необязательно описывать конкретные рабочие примеры (хотя это и не помешает), достаточно будет показать передачу значения переменной из внешней программы -> через DLL -> в эксперт и обратно.
Вот и все что нужно !
Полагаю, если Вы поможете осветить этот вопрос, то не я один буду Вам благодарен, кроме того на форуме явно есть профессиональные программисты для это не составит особого труда.
Заранее спасибо.