Скачать MetaTrader 5

Падение клиента MT4 после использования DLL - страница 3

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vadim Zhunko
5226
Vadim Zhunko  
amikkima:

Я использую  std::thread. Потоки завершаются самостоятельно, более того основной поток ждет пока не закончится выполнение дополнительных.

Вот здесь хороший и понятный пример.

Как уже говорил ранее, эксперт ни шагу не сделает пока не дождется ответа от библиотеки, а она выдаст ответ только когда все потоки завершатся.

Эксперт в итоге нормально получает ответ, подготавливает шаблон, применяет его и терминал схлопывается.

Не использую поток STL. Убогий он. У меня свой класс для организации потока. Даже два. С разным принципом удержания потока. При чём, сам класс и его методы являются объектом потока.

Сделайте:

В DllMain сделать ожидание завершения при её выгрузке.

 или

1. Делать невыгружаемую библиотеку.

 В первом случае классы потоков будут глобальными. Надо делать их синглетонами.

======================

Т.е. библиотека выгружается раньше, чем завершаются потоки. Вернее, есть такая попытка. На ХР с терминалом они завершаются некорректно.

Комбинатор
16174
Комбинатор  
amikkima:

Не совсем понял, т.е. вы предлагаете вместо встроенного MQL4 импорта вида

Нет, просто логов в дллку добавить, я так понимаю она ваша, если падает в ней. Если не в ней, найти где и танцевать от печки.
Debugger
2501
Debugger  

Терминал очень качественно проработан на предмет подключения dll.

Если валится читай учебники как правильно писать dll. 

Если уж на то пошло, то лучше вычисления передавать в стороннее приложение по одному такту а по второму считывать результаты вычислений, так не будет тормозов у терминала и с многопоточностью будет гораздо проще.

Я давно отказался от использования dll для каких либо сложных вычислений. Терминал сам по себе, вычисления сами по себе. 

Таким макаром можно обсчеты производить в x64 приложениях для x32 терминала MT4. 

И падать ничего не будет гарантированно. 

А вариантов передачи бесчисленное множество. 

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