Errori, bug, domande - pagina 1327

 

In ## non si può usare la prima cifra

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

Non si può omettere il parametro macro in una certa combinazione

#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:
No. Il file non è stato modificato dalla consegna standard e non è stato usato MQL5 Storage. L'utente probabilmente è andato in un'altra "Cartella dati" - almeno questa è la versione più fattibile finora.
Ha cercato nel computer. Il file è morto dopo tutto (( Il sistema operativo utilizzato è Windows Server 2012. Il file è stato fissato nella cartella "C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\Scripts" (ultima data - marzo 2015). Non so come sia successo che sia stato sovrascritto con un file con lo stesso nome, ma dalla cartella "C:\Program Files\MetaTrader 5\MQL5\Scripts" (data ultima modifica - agosto 2014). Il file sorgente con estensione mq5 è stato riscritto, mentre il file compilato è rimasto nell'ultima versione. Non ho usatoMQL5 Storage, ora lo farò.
 
kogriv:
Ha cercato nel computer. Il file è morto dopo tutto (( Il sistema operativo utilizzato è Windows Server 2012. Il file era nella cartella "C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\Scripts" (ultima data - marzo 2015). Non so come sia successo che sia stato sovrascritto con un file con lo stesso nome, ma dalla cartella "C:\Program Files\MetaTrader 5\MQL5\Scripts" (data ultima modifica - agosto 2014). Il file sorgente con estensione mq5 è stato riscritto, il file compilato è rimasto nell'ultima versione. Non ho usatoMQL5 Storage, ora lo farò.
Non ci dovrebbero essere i tuoi file (utente) nella cartella C:\Program Files\MetaTrader 5\MQL5\Scripts! Se un file è apparso lì, è solo a causa di un intervento manuale nel lavoro di MetaEditor. Tutto il lavoro di modifica e creazione di file deve avvenire nella cartella dati C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\....
 
Karputov Vladimir:
Nella cartella C:\Program Files\MetaTrader 5\MQL5\Scripts i tuoi file (utente) non dovrebbero esistere! Se un file appare lì, è solo a causa di un intervento manuale nel lavoro di MetaEditor. Tutto il lavoro con la modifica e la creazione di file dovrebbe essere messo nella cartella dati C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\....
L'ho copiato nel primo posto (C:\Program Files\MetaTrader 5\MQL5\Scripts), perché non sapevo delle caratteristiche speciali della posizione dei file sul server, e poi l'ho copiato nella cartella giusta. Non credo che si tratti di "interferenze con il lavoro...".
 
kogriv:
All'inizio l'ho copiato lì (C:\Program Files\MetaTrader 5\MQL5\Scripts), perché non sapevo delle particolarità della posizione dei file sul server, poi ho capito e l'ho copiato nella cartella giusta. Non credo che sia "manomissione...".
Esattamente - intervento manuale. Devi spostare tutti i tuoi file da C:\ProgrammiMetaTrader 5\MQL5\... (taglia e incolla) al posto giusto: C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\....
 
Karputov Vladimir:
Esattamente - intervento manuale. Tutti i tuoi file da C:\Program Files\MetaTrader 5\MQL5\... dovrebbero essere spostati (taglia e incolla) al posto giusto: C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\....
E se non l'avessi tagliato?
 
kogriv:
E se non l'hai tagliato, ma l'hai messo dentro...
In questo caso, la vostra situazione di sovrascrittura sta per ripetersi. L'utente ha una cartella di dati - C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\.... Se volete scrivere file in altre cartelle, lo fate a vostro rischio e pericolo. Dopo tutto, sono i vostri soldi.
 
Karputov Vladimir:
In questo caso, la vostra situazione di sovrascrittura sta per ripetersi. L'utente ha una cartella di dati - C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\.... Se volete scrivere file in altre cartelle, lo fate a vostro rischio e pericolo. Dopo tutto, sono i vostri soldi.

e il tasto /portable?

e a proposito, cosa sono queste cartelle "sdfgshndyueenerneb673756nr76,.t89.y80.tr76m5nbwb6qw6b3qvqvb6547nw8nme789m"? Se ci sono diversi terminali installati, non è facile determinare quale cartella appartiene a quale terminale. Naturalmente, è possibile inserirli usando gli strumenti di MT, ma in tutti gli altri casi è una rottura di palle, quindi /portable è la nostra scelta.

 
Andrey Dik:

e il tasto /portable?

e a proposito, cosa sono queste cartelle "sdfgshndyueenerneb673756nr76,.t89.y80.tr76m5nbwb6qw6b3qvqvb6547nw8nme789m"? Se ci sono diversi terminali installati, non è facile determinare quale cartella appartiene a quale terminale. Certo, è possibile inserirli usando strumenti di MT, ma in tutti gli altri casi è una vera sofferenza.

L'utente ha già sperimentato una volta e ha ottenuto la sovrascrittura dei file. Penso che la seconda volta non si brucerà.
Motivazione: