Связка MQL4(советник)-C#(dll)-C#(dll) - страница 2

 

Vyacheslav090:

Видеть да, а одновременно использовать! Не помню почему встала необходимость шарп использовать, но уже по факту! 

То есть вы считаете что одновременно их нельзя использовать? И такие библиотеки как kernel32, gdi и т.п. загружаются в память для каждого приложения отдельно?

RTFM по разработке DLL статических и динамических.

 
Vyacheslav090:
Об этом писали не раз, в том числе и я на форуме mql4. Напрямую вызвать CLR DLL из советника MT4 не получиться, он может загружать только Native DLL, написанные под Win32. То есть для доступа к DLL под .NET (язык не важен, C#, или C++ CLR или любой другой язык CLR) нужно писать простенькую обертку, DLL на С++, которая загружает .NET DLL. Самый простой способ - сделать на C# статический класс, это ограничивает возможности, зато никакого геморроя с созданием экземпляра класса в памяти.
 
elugovoy:

То есть вы считаете что одновременно их нельзя использовать? И такие библиотеки как kernel32, gdi и т.п. загружаются в память для каждого приложения отдельно?

RTFM по разработке DLL статических и динамических.

)))) Код DLL загружается однократно, а вот область памяти данных создается отдельно для каждого приложения. Впрочем, можно выделить общие переменные (только отдельные переменные, не массивы) в памяти для всех экземпляров одного приложения (например, МТ4 или МТ5). Об этом подробно написано у Рихтера.

#pragma data_seg("Shared")
double data = 0; // переменная будет общей, т.к. лежит в секции Shared
#pragma data_seg

Но гораздо удобнее использовать memory mapped files.

 
VDev:

)))) Код DLL загружается однократно, а вот область памяти данных создается отдельно для каждого приложения. Впрочем, можно выделить общие переменные (только отдельные переменные, не массивы) в памяти для всех экземпляров одного приложения (например, МТ4 или МТ5). Об этом подробно написано у Рихтера.

Но гораздо удобнее использовать memory mapped files.

Вот я про тоже говорю, пусть человек почитает документацию для начала, а то боится использовать DLL которые сам разрабатывает. ))
 

elugovoy:
Вот я про тоже говорю, пусть человек почитает документацию для начала, а то боится использовать DLL которые сам разрабатывает. ))

Да причем тут страх, я же совета спросил, а не накинуться на меня! Чем смогли, помогли, спасибо!

 
Vyacheslav090:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Вопросы от начинающих

barabashkakvn, 2014.08.31 18:41

На форуме иногда при ответе с цитатой, курсор попадает в поле цитаты и никак не хочет оттуда вылезать. Есть способ борьбы с такой ситуацией: Форум: при ответе курсор заскакивает в цитату

 

Vyacheslav090:

Да причем тут страх, я же совета спросил, а не накинуться на меня! Чем смогли, помогли, спасибо!

Славик, не переживай, никто не накидывается.

Кстати, а зачем 2 DLL-ки ? нельзя в одной функционал прописать? или разбил на логические модули?

MT4 действительно только нативные DLL понимает (уж не знаю как сейчас, но раньше точно), так что к шарповским DLL придется по-любому врапперы писать.

Не вешай нос, все получится. Если что обращайся в лс, я помогу. 

 
elugovoy:

Славик, не переживай, никто не накидывается.

Кстати, а зачем 2 DLL-ки ? нельзя в одной функционал прописать? или разбил на логические модули?

MT4 действительно только нативные DLL понимает (уж не знаю как сейчас, но раньше точно), так что к шарповским DLL придется по-любому врапперы писать.

Не вешай нос, все получится. Если что обращайся в лс, я помогу. 

Да, объединить все и было бы гораздо быстрее и проще! Часть функций универсальны для нескольких советников, индикаторов, и более интересней, если их не из mql выдергивать, а из длл! Задачу наверно пока отложу, совмещу все в одной библиотеке, появится время вернусь! Если сам не нарою чего как, обращусь, спасибо!

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