Ошибки, баги, вопросы - страница 1327

 

В ## нельзя использовать 1-ой цифру

#define MACRO( x, y )   x##y
void OnStart()
{
        int i = MACRO( 1, 5 );
        Print( i );
}
 
 

Нельзя опустить параметр макро в определенной комбинации

#define MACRO1( x )             void x() { Print( __FUNCTION__ ); }
#define MACRO2( prefix, function )      MACRO1( prefix##function )
#define MACRO3(         function )      MACRO2(         h2, function )
#define MACRO4(         function )      MACRO2( /*опущен*/, function )
//---
   void f1() { Print( __FUNCTION__ ); }
MACRO3( f2 )          //нормально
MACRO4( f2 )          //Ошибка: argument expected for the function-like macro
//---
void OnStart()
{
        MACRO( /*опущен*/, f1 ); //нормально
        h2f2();
        f2();                   
}
 
Karputov Vladimir:
Нет. Файл изменялся не из стандартной поставки, и MQL5 Storage не использовался. Вероятно пользователь вошёл в другую папку "Data Folder" - по крайней мере это пока самая жизнеспособная версия.
Поискал по компьютеру. Файл все-таки убился (( Используемая ОС- Винд.сервер 2012. Файл правился в папке "C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\Scripts" (последняя дата -март 2015). Не пойму как так получилось, что его перезаписал сверху файл с тем же именем, но из папки "C:\Program Files\MetaTrader 5\MQL5\Scripts" (последняя дата правки- август 2014 г.). Причем переписался файл-исходник с расширением mq5, скомпилированный файл остался в последней версии. MQL5 Storage не использовал, теперь буду.
 
kogriv:
Поискал по компьютеру. Файл все-таки убился (( Используемая ОС- Винд.сервер 2012. Файл правился в папке "C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\Scripts" (последняя дата -март 2015). Не пойму как так получилось, что его перезаписал сверху файл с тем же именем, но из папки "C:\Program Files\MetaTrader 5\MQL5\Scripts" (последняя дата правки- август 2014 г.). Причем переписался файл-исходник с расширением mq5, скомпилированный файл остался в последней версии. MQL5 Storage не использовал, теперь буду.
В папке C:\Program Files\MetaTrader 5\MQL5\Scripts Ваших (пользовательских) файлов быть не должно! Если файл там появился, то только из-за ручного вмешательства в работу MetaEditor'a. Вся работа с редактированием и созданием файлов должна проходить в папке данных C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\....
 
Karputov Vladimir:
В папке C:\Program Files\MetaTrader 5\MQL5\Scripts Ваших (пользовательских) файлов быть не должно! Если файл там появился, то только из-за ручного вмешательства в работу MetaEditor'a. Вся работа с редактированием и созданием файлов должна проходить в папке данных C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\....
почему не может? я скопировал его сначала туда (C:\Program Files\MetaTrader 5\MQL5\Scripts), т.к. не знал про особенности размещения файлов на сервере, потом уже разобрался и скопировал его в нужную папку. Не думаю, что это- "вмешательство в работу.."
 
kogriv:
почему не может? я скопировал его сначала туда (C:\Program Files\MetaTrader 5\MQL5\Scripts), т.к. не знал про особенности размещения файлов на сервере, потом уже разобрался и скопировал его в нужную папку. Не думаю, что это- "вмешательство в работу.."
Вот именно - ручное вмешательство. Нужно все Ваши файлы из C:\Program Files\MetaTrader 5\MQL5\... перенести (вырезать и вставить) на своё законное место: C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\....
 
Karputov Vladimir:
Вот именно - ручное вмешательство. Нужно все Ваши файлы из C:\Program Files\MetaTrader 5\MQL5\... перенести (вырезать и вставить) на своё законное место: C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\....
а если не вырезал? но вставил..
 
kogriv:
а если не вырезал? но вставил..
В таком случае скоро снова будет Ваша ситуация с затиранием. У пользователя есть одна папка данных - C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\.... Если есть желание писать файлы в другие папки - тут Вы действуете на свой страх и риск. В конце концов это Ваши деньги.
 
Karputov Vladimir:
В таком случае скоро снова будет Ваша ситуация с затиранием. У пользователя есть одна папка данных - C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\.... Если есть желание писать файлы в другие папки - тут Вы действуете на свой страх и риск. В конце концов это Ваши деньги.

а как же ключ /portable?

и, к слову, что это за папки такие "sdfgshndyueenerneb673756nr76,.t89.y80.tr76m5nbwb6qw6b3qvqvb6547nw8nme789m"? Если терминалов установлено несколько, то определить какая папка принадлежит какому терминалу непростая задача. Можно конечно заходить в них средствами МТ, но во всех остальных случаях - геморой ещё тот. так что  /portable Наш выбор.

 
Andrey Dik:

а как же ключ /portable?

и, к слову, что это за папки такие "sdfgshndyueenerneb673756nr76,.t89.y80.tr76m5nbwb6qw6b3qvqvb6547nw8nme789m"? Если терминалов установлено несколько, то определить какая папка принадлежит какому терминалу непростая задача. Можно конечно заходить в них средствами МТ, но во всех остальных случаях - геморой ещё тот. так что  /portable Наш выбор.

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