Erros, bugs, perguntas - página 2671

 

Rapazes, aceitei um trabalho em freelancing. Um cliente enviou-me o ficheiro no último minuto. Parece que foi descompilado. Quero ter a certeza de que é verdade antes de me queixar. Estou a anexar um pedaço de código.

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);
}

Uma das funções. Todas as variáveis e funções têm este aspecto.

 
Excepto para as variáveis nas definições do indicador, mas podem ter sido alteradas antes de mim.
 
Dmitri Custurov:

Rapazes, aceitei um trabalho em freelancing. Um cliente enviou-me o ficheiro no último minuto. Parece que foi descompilado. Quero ter a certeza de que é verdade antes de me queixar. Estou a anexar um pedaço de código.

Uma das funções. Todas as variáveis e funções têm este aspecto.

Decompilar inequivocamente.
 
Como é que me separo do cliente neste caso? A violação foi assinalada, mas o acordo já foi feito. Será impossível cancelar excepto através de arbitragem?
 
Dmitri Custurov:
Como é que me separo do cliente neste caso? A violação foi assinalada, mas o acordo já foi feito. Será impossível cancelar excepto através de arbitragem?

Escrever para a arbitragem. Notifiquei a administração.

 
Sergey Dzyublik:

Bug MT5(build 2340) usa o mesmo código duas vezes: primeiro passe - compilação bem sucedida, segundo passe - erro de compilação.
Aparentemente, os problemas estão relacionados com a cache do gerador de funções modelo.

O erro desaparece se para a função modelo "
void run(const T &ff)" a transferência por referência é substituída pela transferência pelo valor"void run(const T ff)".

Obrigado pela mensagem, fixada

 

Graças aos criadores por fornecerem funcionalidade de namespace.
No entanto, porque é que MT5 (build 2361) carece completamente de suporte intellisense para namespaces, mesmo para globais via ::?

Ao mesmo tempo, há apoio ao intellisense para métodos de classe estáticos, para o melhor ou para o pior.
Portanto, do ponto de vista do utilizador, é lógico perguntar: "Porque não reutilizar o código responsável pelo intellisense em classes para implementar o intellisense para namespaces?".

 
O Bug MT5 (build 2361) volta a executar o guião no mesmo gráfico quando a primeira execução ainda não está completa e faz com que o terminal fique pendurado.

O problema é observado para o projecto principal onde são efectuados "cálculos matemáticos" - aí o terminal fica pendurado morto.
O seguinte código pode ser tomado como exemplo a reproduzir:
#define  K 1000
   
void OnStart(){    
   uint start = GetTickCount();
   printf("Start");
   while(GetTickCount() - start < 10*K){
      Sleep(1*K);   
      printf("Progress bar...");
   };
   printf("End");
}


A execução do guião proposto novamente no mesmo gráfico, quando a primeira execução ainda está incompleta, ocorre sem mensagem de confirmação.
Ocorre um enforcamento durante alguns segundos - não há saída da "barra de progresso...", depois a bandeira de saída do terminal é colocada e oSleep deixa de ser accionado.
Para o projecto principal, após um enforcamento de vários segundos, o terminal não se desenvolve de todo - tenho de matar o processo.

 

é possível obter o número de passe do agente testador?


ZS: ou precisamos de um identificador único de cada passe durante os testes para o nome do ficheiro - quero guardar as definições da EA durante os testes num ficheiro, mas precisamos de algo único para formar um nome de ficheiro com as definições

 
Igor Makanu:

é possível obter o número de passe do agente testador?

Há apenas os dados que estão no ficheiro opt. O formato está disponível.