Эксперт создающий графики по дельте цены. Где то ошибка.

 

Собственно это вспомогательный эксперт, создает и обновляет оффлайн графики, где бары формируются по заданной разнице цены (minPoint). Где то вкралась ошибочка и то проявляется то нет, и состоит в том, что при удалении данного эксперта с графика, терминал падает с крэшлогом. Вычислить при каких условиях это происходит не могу, но точно, когда открыт хотябы один созданный этим же экспертом график. На 205 билде такого не было. Я отсылал лог и эксперт на support@meta....s.ru, ответили, что ошибка в deinit и предложили обратиться сюда. Скорее всего ошибка элементарная, но где я не вижу в упор.

За основу брал эксперт kompostera - AllMinutes, (Андрею отдельный респект), который кстати также выбивает терминал.

Надеюсь кто-нибуть взглянет свежим взором.

Файлы:
dp.zip  5 kb
 
kurtman:


За основу брал эксперт kompostera - AllMinutes, (Андрею отдельный респект), который кстати также выбивает терминал.
Вот они, слова благодарности =)

Только что специально установил билд 206 от 06.06.2007 и проверил AllMinutes - всё работает, креша добиться не смог.
С dP.mq4 ситуация та же - воспроизвести падение не могу.
 
komposter:
kurtman:


За основу брал эксперт kompostera - AllMinutes, (Андрею отдельный респект), который кстати также выбивает терминал.
Вот они, слова благодарности =)

Андрей, к Вам естественно ни каких претензий не было и нет. ))

Просто в попытках разобратся, я запустил AllMinutes, так как они по структуре почти одинаковы и обнаружил, что у меня с ним такая же история. Хочу разобратся почему. Еще интересный момент - например переименовываю функцию start в _start, и вставляю пустую int start() {return(0);}, вроде заработало, закрываю вручную терминал опять запускаю и присоединяю dP, все не работает (. И повторно воспроизвести эту же ситуацию уже не могу.

До этого всегда сам разбирался со своими кодерскими заморочками, но тут даже нащюпать немогу. Может глюки...

 

Разобрался. Я как-то давно, уже не помню зачем, в папку \experts\libraries\ данной копии терминала положил библиотеку user32.dll, которая вызывается в WinUser32.mqh, поэтому и происходило падение, если удалить оттуда эту библиотеку то все работает. До этого запускал эксперт на другой копии терминала (билд 205), где нет user32. Я не владею тонкостями использования dll, но видимо вследствии того, что user32.dll это системная библиотека и происходила данная коллизия.

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