Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Написал робота? Опубликуй его в Маркете и получай доход!
Vyacheslav Baldykov
206
Vyacheslav Baldykov 2014.08.29 12:48 

Всем доброе время суток!

Пытаюсь сделать связку:

Советник дергает функцию из длл, в этой функции дергается другая функция из другой длл.

Проблема: при запуске советник сразу вылетает("Unhandled exception 0xE0434352").

Обе функции по отдельности работают нормально,  связка тоже работает-проверено на си шарпе! Проблема очевидно с особенностями MQL4 или MT4. Кто сталкивался с подобными вещами? Кто что думает?

o_o
Модератор
23696
o_o 2014.08.29 14:12  
сделайте по порядку и увидите где проблема.
Vyacheslav Baldykov
206
Vyacheslav Baldykov 2014.08.29 14:34  

sergeev:
сделайте по порядку и увидите где проблема.

В том то и дело, что ни в типах, ни в чем загвоздки нет! По отдельности с MQL4 все работает, в совокупности и с шарпом тоже работает! Вы считаете в МТ4 нет таких проблем?

o_o
Модератор
23696
o_o 2014.08.29 14:49  

Vyacheslav090:

Вы считаете в МТ4 нет таких проблем?

считаю, что если сделаете все правильно, то существующая ваша проблема решится.
Mikhail Filimonov
5931
Mikhail Filimonov 2014.08.29 18:46  
Vyacheslav090:

Всем доброе время суток!

Пытаюсь сделать связку:

Советник дергает функцию из длл, в этой функции дергается другая функция из другой длл.

Проблема: при запуске советник сразу вылетает("Unhandled exception 0xE0434352").

Обе функции по отдельности работают нормально,  связка тоже работает-проверено на си шарпе! Проблема очевидно с особенностями MQL4 или MT4. Кто сталкивался с подобными вещами? Кто что думает?

А когда из 1-ой DLL вы "дергаете" вторую, вторая-то загружена?
Eugeniy Lugovoy
1979
Eugeniy Lugovoy 2014.08.29 22:50  

Это исключение CLR.

По поводу его обработки посмотрите http://ig2600.blogspot.com/2009/07/finding-clr-exceptions-with-visual.html 

Nikolay Demko
12464
Nikolay Demko 2014.08.30 00:55  
Vyacheslav090:

Всем доброе время суток!

Пытаюсь сделать связку:

Советник дергает функцию из длл, в этой функции дергается другая функция из другой длл.

Проблема: при запуске советник сразу вылетает("Unhandled exception 0xE0434352").

Обе функции по отдельности работают нормально,  связка тоже работает-проверено на си шарпе! Проблема очевидно с особенностями MQL4 или MT4. Кто сталкивался с подобными вещами? Кто что думает?

Не знаю как сейчас, раньше C#-длл , без специальной обвязки C++ не работали, погуглите форум, где то об этом было.

ЗЫ вот тут почитайте может чё полезного обнаружите 

Vyacheslav Baldykov
206
Vyacheslav Baldykov 2014.08.30 12:36  
Urain:

Не знаю как сейчас, раньше C#-длл , без специальной обвязки C++ не работали, погуглите форум, где то об этом было.

ЗЫ вот тут почитайте может чё полезного обнаружите 

http://jonxxx.me/13-metatrader/15-eksport-funktsij-iz-net-dll-c-dllexport-net-framework-v-metatrader

Вот эта статья мне помогла делать ДЛЛ на шарпе! А так да, на плюсах делал всегда, но именно последовательно не пробовал ниразу! 

Экспорт функций из Net dll | C# DLLExport | .NET Framework в Metatrader
Экспорт функций из Net dll | C# DLLExport | .NET Framework в Metatrader
  • jonxxx.me
Изначально статья была размещена на форуме, решил скопировать сюда, на всякий. Решил написать небольшой мануал по созданию dll для Metatrader на платформе .NET Framework. Также он пригодится тем программистам, кому нужно сделать вызов из неуправляемого кода в управляемый в любых других программах. Вам мануал может сэкономить кучу времени на...
Vyacheslav Baldykov
206
Vyacheslav Baldykov 2014.08.30 12:54  

Mikalas:
А когда из 1-ой DLL вы "дергаете" вторую, вторая-то загружена?

Вы имеете в виду использует ли еще какая софтина эту длл? Нет! Кстати для меня задача эта будет новой, несколько софтин используют одну и ту же длл, первая мысль это не возможно, но может и решил кто то это! 

Eugeniy Lugovoy
1979
Eugeniy Lugovoy 2014.08.30 14:49  

Vyacheslav090:

Вы имеете в виду использует ли еще какая софтина эту длл? Нет! Кстати для меня задача эта будет новой, несколько софтин используют одну и ту же длл, первая мысль это не возможно, но может и решил кто то это!  


А почему это не возможно? Кидайте DLL в Windows\System32 и все приложения ее будут видеть.

И обмен через Shared Memory между приложениями можно организовать. 

Однако, я склоняюсь к разработке DLL на С/С++. Шарп для этого не использую. 

Vyacheslav Baldykov
206
Vyacheslav Baldykov 2014.08.30 15:45  
elugovoy:

А почему это не возможно? Кидайте DLL в Windows\System32 и все приложения ее будут видеть.

И обмен через Shared Memory между приложениями можно организовать. 

Однако, я склоняюсь к разработке DLL на С/С++. Шарп для этого не использую. 

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

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