Errori, bug, domande - pagina 1687

 
Domanda. La dimensione di una classe vuota in MQL è di 16 byte (in un sistema a 64 bit). Perché? 8 byte devono essere occupati dal puntatore alla tabella virtuale (secondo la documentazione, tutte le classi lo hanno in MQL). E i restanti 8 byte sono occupati da cosa?
 
Colleghi, qualcuno ha incontrato questo problema? Il terminale è stato aggiornato a biuld 1430 questa mattina. E come coincidenza, ieri ho riscritto il mio Expert Advisor per lavorare con i file tramite la libreria standard (prima non aveva completamente successo usando le operazioni standard sui file), ma non l'ho testato - l'ho rimandato a domani mattina. Ed ecco il risultato: l'Expert Advisor non trova un file durante il test - la funzione FileIsExist restituisce sempre false. Non so dove sia il difetto - se è nelle mie modifiche o nell'aggiornamento. Il fatto è che la documentazione dice che il file deve trovarsi nella cartella MQL5/Tester/Files durante i test. Tuttavia, in realtà, il percorso è diverso: ...{Roaming\MetaQuotes\Tester\...qualche cosa esagonale...\Agent-127.0.0.1-3000\MQL5\Files. Cioè almeno c'è un errore nella documentazione. Ma la cosa principale è che quando inizia il test, il file messo lì manualmente viene cancellato dalla cartella specificata, anche se la mia funzione FileIsExist è prescritta in OnInit ed è la prima ad accedere ai file. Quindi ho una domanda: dove dovrebbe essere collocato un file durante i test? E cosa succede?
 
BlackTomcat:
Colleghi, qualcuno ha incontrato questo problema? Il terminale è stato aggiornato a biuld 1430 questa mattina. E come coincidenza, ieri ho riscritto il mio Expert Advisor per lavorare con i file tramite la libreria standard (prima non aveva completamente successo usando le operazioni standard sui file), ma non l'ho testato - l'ho rimandato per domattina. Ed ecco il risultato: l'Expert Advisor non trova un file durante il test - la funzione FileIsExist restituisce sempre false. Non so dove sia la colpa - o nelle mie modifiche o a causa dell'aggiornamento. Il fatto è che la documentazione dice che il file deve trovarsi nella cartella MQL5/Tester/Files durante i test. Tuttavia, in realtà, il percorso è diverso: ...{Roaming\MetaQuotes\Tester\...qualche merda esagonale...\Agent-127.0.0.1-3000\MQL5\Files. Cioè almeno c'è un errore nella documentazione. Ma la cosa principale è che quando inizia il test, il file messo lì manualmente viene cancellato dalla cartella specificata, anche se la mia funzione FileIsExist è prescritta in OnInit ed è la prima ad accedere ai file. Quindi ho una domanda: dove dovrebbe essere collocato un file durante i test? E cosa succede?
Bene, il problema è stato aggirato usando il flag FILE_COMMON.
Il file si troverà nella cartella ...{Roaming\MetaQuotes\Terminal\Common\Files. Durante i test non viene cancellato da lì e può essere letto normalmente.
 

Domanda: Come trovo i miei messaggi nel forum MQL4? Circa due anni fa è stato creato un thread con codice allegato e questo codice è ora diventato interessante, ma la ricerca nel forum è silenziosa. Se vado nelle mie pubblicazioni, questo argomento non c'è. (cancellato?)

 

Come faccio a sapere se una macro è mai stata usata o no?

 
fxsaber:

Come faccio a sapere se una macro è mai stata usata o no?

come questo:

#ifndef __MY_MACROS__   // если макрос не использован
   #define __MY_MACROS__
//----------------------------------------
// тут ваш код использующий макрос
//----------------------------------------
#endif // __MY_MACROS__
 
coderex:

come questo:

Intendevo l'altra cosa.
#define  MACROS(A) A

void Func()
{
  MACROS(A) // Если закомментировать, то макрос ни разу не использовался
}

// Вот здесь хотелось бы понять, использовался ли хоть раз макрос или нет.
 
Aiutatemi a capire come fare un controllo nel sorgente se OnInit è definito o no?
 
fxsaber:
Mi riferivo a qualcos'altro.
Il più semplice è un contatore di chiamate macro in una variabile globale, sovrascritto dalla macro stessa.
 
Sergei Vladimirov:
Il più semplice è un contatore di chiamate macro in una variabile globale, riscritta dalla macro stessa.
Esiste una tale variante, ma non è adatta a tutte le macro, purtroppo.