Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Креш действительно может не сформироваться при падении в коде EX5 программы.
Что за "некоторое время" Вы упоминаете в своём сообщении?
Попробуйте обложить логами места вызова DLL функций ("начинаем вызов SomeDLLFunc"/"вызов SomeDLLFunc завершён", можно и счётчик вызова добавить).
"некоторое время" - это значит, что после запуска терминала, скриптов и экспертов он работает еще сколько-то (величина неизвестная - варьируется примерно от 10 минут до примерно 4-6 часов).
Пробовал обложить логами, в результате логи были по 300-400 Мб за несколько минут, так как у меня в цикле происходит постоянное обращение к функции чтения данных из БД на предмет наличия обновлений - так что формировать такой лог не вариант.
Итак вот к чему привели меня мои исследования:
обрезал dll и советник до того, что пришел к выводу о падениях MT5.
Данное действие повторяется у меня на Windows Server 2008 R2 Standard Service Pack 1 x64 (16 Гб ОЗУ, 4 CPU по 2,5 GHz)
dll написана на Delphi, вот код:
Как видно из кода внутри try ... except указан raise Exception, который должен перехватиться - в терминале на Windows 7 все так и происходит, результат выполнения советника = -1, однако на Windows Server 2008 R2 терминал просто валится.
Вот код советника:
Почему так происходит?
Прикрепил скомпилированную dll к посту.
Терминал x64 или x86?
Терминал x86 в среде x64
Это необходимо, так как dll 32 бита. Delphi XE не умеет 64 битные собирать.
Но Windows 7 у меня x64 и терминал тут тоже x86 - все работает.
Терминал x64 или x86?
В сервисдеске я заявку создал.
Появились какие-то идеи?