Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Зарегистрируйся, чтобы опубликовать статью и получить 200 USD
AndriusS
76
AndriusS 2010.11.22 16:41 

Здравствуйте,


Суть проблемы уже указал в названии этой темы, ну а теперь детали...

Данное сообщение компилятора я получаю при попытке компиляции EA, которого написал сам. После этого в директории experts появляется файл с расширением log, имя которого совпадает с названием EA. В этом файле единственная строка текста: "2;76;;;cannot open the program file". С помощью поисковых систем интернета пробовал найти решение, но не нашёл аналогичного случая. Множество тех, которые сталкиваются с сообщением компилятора "cannot open the program file", на самом деле что-нибудь перепутывают: иногда перепутывают расширения библиотек *.mqh, иногда файлы этих библиотек поместчают в неправильную (не include) папку, иногда в системе NTFS не указывают достаточно прав (например, Write) для платформы MetaTrader и т.д. В тех случаях, обычно, вместе с сообщением компилятора "cannot open the program file" указывается путь к тому файлу, из-за которого произошла эта ошибка. У меня дело идёт по-другому - рядом с сообщением компилятора не указан путь к проблемному файлу. Даже в том *.log файле тоже не указан путь, в нём единственная строка текста (без ковычек): "2;76;;;cannot open the program file". Чтобы полностью исключить возможность недостаточных прав системы NTFS, я даже решился всему D: диску (в котором у меня инсталлированна платформа MetaTrader) и всем субдиректориям этого диска назначить право на Full Control для всех пользователей и для самой системы, сам работаю подсоединившись к системе как Administrator, но этот шаг никак не повлиял на факт появления сообщения компилятора. Также пробовал переинсталлировать MetaTrader, обновить 4.225 версию на более новую 4.229 - никаких изменений. Самое интересное то, что факт появления этого сообщения совсем не зависит от кода внутри EA и проподает только тогда, когда я существенно изменяю название самого EA или существенно поменяю название директории, в которой установленна платформа MetaTrader. Если название EA или директории поменить на 1-2 символа, сообщение "cannot open the program file" остаётся. С помощью MetaEditor'а даже попробовал создать новый пустой EA (File/New/Expert Advisor, Next), его назвать также и откомпилировать. Угадайте результат, правильно - сообщение компилятора "cannot open the program file" осталось... Вчера мучился пару часов, сегодня уже полдень сижу на этой проблеме, но решить её или идентифицировать причину не удаётся. Ну что-ж, прямо, полтергейст какой-то... Даже компьютер от вирусов просканировал :-).


З.Ы.: Я уже ~5 лет (начиная с 3-ей версии) активно пользуюсь платформой MetaTrader и програмирую на MQL, но с данной проблемой столкнулся впервые.


Виктор
Модератор
6559
Виктор 2010.11.22 16:48  
Это может быть, если в эдиторе стоит другой путь. Надо попробовать закрыть советник, затем открыть (посмотрев, откуда открываешь) и затем скомпилировать. Или записать его в нужный каталог через "Сохранить как".

Такое чаще бывает, если стоят несколько терминалов.

Victor Nikolaev
Модератор
14330
Victor Nikolaev 2010.11.22 16:50  
granit77:
Это может быть, если в эдиторе стоит другой путь. Надо попробовать закрыть советник, затем открыть (посмотрев, откуда открываешь) и затем скомпилировать. Или записать его в нужный каталог через "Сохранить как".

Ага. Только стоило бы еще и про ось написать. Вдруг прав просто не хватает

Петр
6083
Петр 2010.11.22 16:52  
Угу. Скорей всего - 7. Или Виста.
Виктор
Модератор
6559
Виктор 2010.11.22 16:55  
Svinozavr:
Угу. Скорей всего - 7. Или Виста.
Стало быть, ставить терминал-то надоть на D:
AndriusS
76
AndriusS 2010.11.22 17:11  
granit77:
Это может быть, если в эдиторе стоит другой путь. Надо попробовать закрыть советник, затем открыть (посмотрев, откуда открываешь) и затем скомпилировать. Или записать его в нужный каталог через "Сохранить как".

Такое чаще бывает, если стоят несколько терминалов.

Попробовал - никаких изменений :(... Когда советник из эдитора сохраняю в другой каталог, компилируется нормально. Но, когда из эдитора опять тот же самый советник из другого каталога сохраняю (Save As...) туда, где он и должен быть (в директории experts), сообщение компилятора "cannot open the program file" опять появляется.

AndriusS
76
AndriusS 2010.11.22 17:13  
Svinozavr:
Угу. Скорей всего - 7. Или Виста.

Нет... Я в этом смысле довольно консервативный - у меня "Windows 2000 Professional" :)...

o_O
Модератор
23594
o_O 2010.11.22 17:38  
Andrius_S:

Нет... Я в этом смысле довольно консервативный - у меня "Windows 2000 Professional" :)...


у меня тоже. но это появляется в случае запрещения доступа в эту папку. короче прав нет.
AndriusS
76
AndriusS 2010.11.22 18:01  
sergeev:
у меня тоже. но это появляется в случае запрещения доступа в эту папку. короче прав нет.

А как объяснить то, что советник с другим названием, помещённый в той же папке, компилируется без проблем?

З.Ы.: На все папки, все субдиректории и на все файлы диска D: установлен Full Control доступ (про это уже писал в первом сообщении этой темы)...

MetaQuotes
Админ
24812
Renat Fatkhullin 2010.11.22 18:16  

Приложите сюда файл, пожалуйста.

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

AndriusS
76
AndriusS 2010.11.22 18:30  
Renat:

Приложите сюда файл, пожалуйста.

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

У меня сообщение компилятора "cannot open the program file" появляется даже при компиляции "пустого" советника (см.: прикрепленный файл fhs875.mq4). Когда советник fhs875.mq4 сохраняю в другой каталог, компилируется нормально.
Файлы:
fhs875.mq4 2 kb
/ /123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий