Обратите внимание, что компилятор переехал внутрь MetaEditor, начиная с 900 билда

 

Мы избавились от дополнительного компонентов mql[64].dll и mql[64].exe, которые являлись внешним компилятором языков MQL4/MQL5 и включили его напрямую в редактор.

Тем самым мы решили несколько проблем:

  1. Убрали шанс излишней ретивости некоторых антивирусов, которые ложно реагировали на сигнатуры протектора в компиляторе
  2. Ускорили компиляцию из редактора
  3. Убрали лишние 2 файла из поставки и каталога программы (чуть позже мы уберем и все языковые переводы)

Консольный компилятор MQL4/MQL5 остался, обновляется вместе с платформами МетаТрейдер 4/5 и всегда доступен по ссылкам:

DLL файлы ему больше не нужны.

 

Invalid EX5 file (8)

Вот такое сообщение стало появляться сразу после обновления на 900 билд и перезагрузки, эксперт не менялся. 

С предыдущим билдом все работало около месяца.

В эксперте есть вызовы функций виндовых DLL (shell32.dll, kernel32.dll)

Win7 - 64

Может, вы там заодно с избавлением от своих длл порушили и работу с виндовыми дллками? 

 


 

Попробуйте перекомпилировать эксперта заново.

 

да пробовал уже, конечно, это первое, что я сделал сразу после ругательств в ваш адрес :)

старый файл ex5 удалил и скомпилил по-новой. Новый ex5 появился. Бросаю эксперт на чарт, в ответ получаю вышеуказанное сообщение Invalid EX5 file (8)

Щас нашел 880 билд, проверил на нем - работает. На новом, 900 билде - не работает.

Причем это касается только советника с импортом виндовых длл. Обычные советники, не использующие dll работают. 

 

Что еще интересно:

у меня используются две виндовые длл - shell32.dll и kernel32.dll

так 880 билд спрашивал только об  kernel32.dll

900 билд спрашивает и о  shell32.dll, и о kernel32.dll

После того, как поставишь галку Разрешить ДЛЛ, так и получаешь  Invalid EX5 file (8)

В логах тоже только это и пишет, никаких подробностей нет 

 
falkov:

да пробовал уже, конечно, это первое, что я сделал сразу после ругательств в ваш адрес :)

Можете приложить сюда краткий кусок исходного кода, который показывает проблему?
 

И каким же образом я определю краткий кусок кода, который показывает эту проблему, если при компиляции все нормально, а при присоединении к чарту ничего не делается? :)

 

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

То, что не работает, состоит из двух файлов - сам советник и его библиотека. Могу отправить вам эти два файла. Куда?

 
falkov:

Invalid EX5 file (8)

Вот такое сообщение стало появляться сразу после обновления на 900 билд и перезагрузки, эксперт не менялся. 

С предыдущим билдом все работало около месяца.

В эксперте есть вызовы функций виндовых DLL (shell32.dll, kernel32.dll)

Win7 - 64

Может, вы там заодно с избавлением от своих длл порушили и работу с виндовыми дллками? 

 


Вызов "user32.dll" у меня происходит без проблем на 900 билде. Пробовал запускать файл скомпилированный прошлым билдом и скомпилированный 900 билдом. Никаких ошибок с WinAPI/
 
falkov:

И каким же образом я определю краткий кусок кода, который показывает эту проблему, если при компиляции все нормально, а при присоединении к чарту ничего не делается? :)

 

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

То, что не работает, состоит из двух файлов - сам советник и его библиотека. Могу отправить вам эти два файла. Куда?

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

Можете мне в личку приложить файлы? Я их удалю после проверки.

 

Конечно, могу и буду благодарен, если подскажете, в чем дело. Может, это мой косяк!

И удалять не обязательно - нет там ничего ценного, обычная работа.

 ps Послал

 

У меня тоже проблемы с работой скрипта где используется винапи, правда на мт4.

Написал в Сд #956650 неделю назад приложил все коды.

.. 

Win 8.1x64 Prof.

МТ4 билд 610, МЕ - 887.

Скрипт при запуске выдает Access violation read to 0x********.

Скрипт посылает POST и GET запросы используя wininet.dll.

Приложенный код компилируемый в МЕ 883 версии работает нормально. 

 

Пока разработчики, возможно, думают, я выяснил, что проблема с ShellExecuteW:

#import "shell32.dll"

    int ShellExecuteW(int hwnd, string lpOperation, string lpFile,string lpParameters,string lpDirectory,int nShowCmd);

#import

 если это закомментировать и, конечно, закомментировать в советнике использование функции ShellExecuteW, то при присоединении эксперта к чарту сообщение Invalid EX5 file (8) не выводится.

 

В связи с этим прошу тех, кому не лень, проверить в Ваших советниках работу указанной виндовой дллки и функции на 900 билде.

На предыдущем, 880 билде, все работало нормально. 

Спасибо! 

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