Errori, bug, domande - pagina 2671

 

Ragazzi, ho accettato un lavoro come freelance. Un cliente mi ha inviato il file all'ultimo minuto. Sembra che sia stato decompilato. Voglio assicurarmi che sia vero prima di lamentarmi. Allego un pezzo di codice.

int f0_0(string As_0, int &Ai_8, int &Aia_12[]) {
   string Ls_16;
   if (StringLen(As_0) == 0) return (-1);
   string Ls_24 = As_0;
   int Li_32 = 0;
   Ai_8 = 0;
   ArrayResize(Aia_12, Ai_8);
   while (StringLen(Ls_24) > 0) {
      Li_32 = StringFind(Ls_24, ",");
      if (Li_32 > 0) {
         Ls_16 = StringSubstr(Ls_24, 0, Li_32);
         Ls_24 = StringSubstr(Ls_24, Li_32 + 1, StringLen(Ls_24));
      } else {
         if (StringLen(Ls_24) > 0) {
            Ls_16 = Ls_24;
            Ls_24 = "";
         }
      }
      if (f0_2(Ls_16, Ai_8, Aia_12) == 0) return (-2);
   }
   return (1);
}

Una delle funzioni. Tutte le variabili e le funzioni hanno questo aspetto.

 
Tranne le variabili nelle impostazioni dell'indicatore, ma potrebbero essere state cambiate prima di me.
 
Dmitri Custurov:

Ragazzi, ho accettato un lavoro come freelance. Un cliente mi ha inviato il file all'ultimo minuto. Sembra che sia stato decompilato. Voglio assicurarmi che sia vero prima di lamentarmi. Allego un pezzo di codice.

Una delle funzioni. Tutte le variabili e le funzioni hanno questo aspetto.

Decompilare in modo inequivocabile.
 
Come mi divido con il cliente in questo caso? La violazione è stata segnalata, ma l'accordo è già stato fatto. Sarà impossibile annullare se non attraverso un arbitrato?
 
Dmitri Custurov:
Come faccio a separarmi dal cliente in questo caso? La violazione è stata segnalata, ma l'accordo è già stato fatto. Sarà impossibile annullare se non attraverso un arbitrato?

Scrivere all'arbitrato. Ho avvisato l'amministrazione.

 
Sergey Dzyublik:

Il bug MT5 (build 2340) usa lo stesso codice due volte: primo passaggio - compilazione riuscita, secondo passaggio - errore di compilazione.
Apparentemente i problemi sono legati alla cache del generatore di funzioni template.

L'errore scompare se per la funzione template "
void run(const T &ff)" il trasferimento per riferimento è sostituito dal trasferimento per valore"void run(const T ff)".

Grazie per il messaggio, risolto

 

Grazie agli sviluppatori per aver fornito la funzionalità namespace.
Tuttavia, perché MT5 (build 2361) manca completamente del supporto intellisense per i namespace, anche per i globali via ::?

Allo stesso tempo, c'è il supporto per l'intellisense per i metodi statici di classe, nel bene e nel male.
Quindi, dal punto di vista dell'utente, è logico chiedersi: "Perché non riutilizzare il codice responsabile dell'intellisense nelle classi per implementare l'intellisense per i namespace?".

 
Il bug MT5 (build 2361) esegue nuovamente lo script sullo stesso grafico quando la prima esecuzione non è ancora completa e causa il blocco del terminale.

Il problema si osserva per il progetto principale dove vengono eseguiti "calcoli matematici" - lì il terminale si blocca senza vita.
Il seguente codice può essere preso come esempio da riprodurre:
#define  K 1000
   
void OnStart(){    
   uint start = GetTickCount();
   printf("Start");
   while(GetTickCount() - start < 10*K){
      Sleep(1*K);   
      printf("Progress bar...");
   };
   printf("End");
}


L'esecuzione dello script proposto di nuovo sullo stesso grafico, quando la prima esecuzione è ancora incompleta, avviene senza messaggio di conferma.
Si verifica un blocco per alcuni secondi - non c'è l'uscita "Progress bar...", poi il flag di uscita del terminale viene impostato eSleep non viene più attivato.
Per il progetto principale, dopo un blocco di alcuni secondi, il terminale non si sviluppa affatto - devo uccidere il processo.

 

è possibile ottenere il numero di pass dall'agente tester?


ZS: o abbiamo bisogno di un identificatore unico da ogni passaggio durante i test per il nome del file - voglio salvare le impostazioni EA durante i test in un file, ma abbiamo bisogno di qualcosa di unico per formare un nome di file con le impostazioni

 
Igor Makanu:

è possibile ottenere il numero di pass dall'agente tester?

Ci sono solo i dati che si trovano nel file opt. Il formato è disponibile.