Errori, bug, domande - pagina 1969

 
Alexey Kozitsyn:
Sì, vedo... Allora creerò un'altra applicazione.

La mia domanda per MT5 - 2016.10.11 16:28,#1584315- accettato per la revisione finora. ;-)

 
Stanislav Korotky:

La mia domanda per MT5 - 2016.10.11 16:28,#1584315- accettato per la revisione finora. ;-)

Il BOD ha bisogno di scrivere periodicamente all'applicazione perché rispondano. A volte lo mancano.
 
Alexey Kozitsyn:
Questo è quello che pensavo fosse risolto, ma ora non lo è. Ho appena controllato. Bild 1643.

È la build 1650. Guarda qui.

 
Artyom Trishkin:

È già la build 1650. Guarda qui.

OK, ho appena nominato l'ultima build ufficiale.
 

Originariamente, c'erano diversi moduli. Tutto funzionava bene. A causa di ... ha deciso di convertire temporaneamente tutto in uno solo.
Risultato: il programma ha iniziato a funzionare in modo diverso.
Ho scoperto il motivo:

#ifndef _WIN64 //добавлено
class A {
public:
        A() { Print( a ); } //Результат: 0 //не может быть
        static const int a; //(1)
}; 
static A *a = new A;    //(2)
const int A::a = 1;     //(3)
void OnStart() {}
#endif

Non siamo stati in grado di scoprire esattamente perché questa particolare sequenza di linee è apparsa (di solito l'implementazione/inizializzazione viene subito dopo la dichiarazione). Forse è stato un reciproco incrocio di classi.

Non so come fa esattamente il compilatore C++, ma il risultato: 1 (come previsto)
 

Errore, la lettura non riesce.

   ulong l[] = {ULONG_MAX};
   ulong l2[1];
   {
      int file = FileOpen("ttt", FILE_WRITE|FILE_BIN);
      FileWriteArray(file, l);
   }
   {
      int file = FileOpen("ttt", FILE_READ|FILE_BIN);
      FileReadArray(file, l2);
   }
   Alert(l[0] == l2[0]);
   Alert(l[0], "   ", l2[0]);
   return;

Alert:

falso

18446744073709551615 10000000

Immagine esadecimale del numero nel file: FF FF FF FF FF FF FF FF FF FF

 
pavlick_:

L'errore, la lettura è malfunzionante.

Non la lettura, ma l'inizializzazione dell'array. Rimuovere le parentesi graffe.

Sono lento, controllerò due volte.
 
Комбинатор:

Non leggere, ma inizializzare l'array. Rimuovere le parentesi graffe.

Senza di essi non compila affatto ('l' - accesso all'array non valido). Comunque - il numero nel file è corretto.

 
Sospetto che il primo handle debba essere chiuso o aperto con il flag FILE_SHARE_READ
 
Комбинатор:
Sospetto che il primo handle debba essere chiuso o aperto con il flag FILE_SHARE_READ

Grazie per il vostro interesse. L'ho fatto. Chiuso le maniglie, ora funziona correttamente. Ho un errore nel mio script, cercando di localizzarlo, finora.

Motivazione: