Erros, bugs, perguntas - página 2955

 

O que fazer? A embalagem e desempacotamento de dados não funciona correctamente:

Este é um teste

void OnStart()
  {
   uchar my_array_in[];
   uchar my_array_out[];
   uchar my_array_test[];
   const uchar key[]= {0,0,0,0};

   for(int i1=0; i1<100; i1++)
     {
      int size=777+i1*1024+i1*3+i1;
      ArrayResize(my_array_in,size);
      for(int i2=0; i2<size; i2++)
        {
         my_array_in[i2]=uchar(i2*5956);
        }
      ResetLastError();
      int size_out=CryptEncode(CRYPT_ARCH_ZIP,my_array_in,key,my_array_out);
      if(size_out==0)
        {
         Print("CryptEncode: индекс ",i1,"   ошибка ","  ",GetLastError());
         continue;
        }
      ArrayResize(my_array_out,size_out);
      ResetLastError();
      int size_test=CryptDecode(CRYPT_ARCH_ZIP,my_array_out,key,my_array_test);
      if(size_test==0)
        {
         Print("CryptDecode: индекс ",i1,"   ошибка ","  ",GetLastError());
        }
      else
         if(size_test!=size)
           {
            Print("CryptDecode: индекс ",i1,"   не верный размер");
           }
         else
           {
            for(int i2=0; i2<size; i2++)
              {
               if(my_array_in[i2]!=my_array_test[i2])
                 {
                  Print("CryptDecode: индекс ",i1,"   ошибка в данных");
                  break;
                 }
              }
           }
     }
  }

Resultado. 4001 Erro interno inesperado

2021.02.08 16:37:05.648 Test4 (EURUSD,M1)       CryptDecode: индекс 66   ошибка   4001
2021.02.08 16:37:05.649 Test4 (EURUSD,M1)       CryptDecode: индекс 68   ошибка   4001
2021.02.08 16:37:05.650 Test4 (EURUSD,M1)       CryptDecode: индекс 70   ошибка   4001
2021.02.08 16:37:05.650 Test4 (EURUSD,M1)       CryptDecode: индекс 72   ошибка   4001
2021.02.08 16:37:05.651 Test4 (EURUSD,M1)       CryptDecode: индекс 74   ошибка   4001
2021.02.08 16:37:05.652 Test4 (EURUSD,M1)       CryptDecode: индекс 76   ошибка   4001
2021.02.08 16:37:05.653 Test4 (EURUSD,M1)       CryptDecode: индекс 78   ошибка   4001
2021.02.08 16:37:05.654 Test4 (EURUSD,M1)       CryptDecode: индекс 80   ошибка   4001
2021.02.08 16:37:05.655 Test4 (EURUSD,M1)       CryptDecode: индекс 82   ошибка   4001
2021.02.08 16:37:05.656 Test4 (EURUSD,M1)       CryptDecode: индекс 84   ошибка   4001
2021.02.08 16:37:05.657 Test4 (EURUSD,M1)       CryptDecode: индекс 86   ошибка   4001
2021.02.08 16:37:05.658 Test4 (EURUSD,M1)       CryptDecode: индекс 88   ошибка   4001
2021.02.08 16:37:05.659 Test4 (EURUSD,M1)       CryptDecode: индекс 90   ошибка   4001
2021.02.08 16:37:05.660 Test4 (EURUSD,M1)       CryptDecode: индекс 92   ошибка   4001
2021.02.08 16:37:05.661 Test4 (EURUSD,M1)       CryptDecode: индекс 94   ошибка   4001
2021.02.08 16:37:05.662 Test4 (EURUSD,M1)       CryptDecode: индекс 96   ошибка   4001
2021.02.08 16:37:05.663 Test4 (EURUSD,M1)       CryptDecode: индекс 98   ошибка   4001
Por favor, os criadores resolvam esta questão
 
DMITRII PECHERITSA:

No caso geral, ambos são inadequados, porque os métodos são virtuais e, na classe derivada, o método é anulado e já está ocupado por outra coisa.

E em alguns casos especiais, pode passar sem aulas

 
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

ushort a;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   a=0;
//---
   return(INIT_SUCCEEDED);
  }


A expressão não pôde ser avaliada

Porque não pode a variável ser vista?

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • 2021.02.08
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
Arquivos anexados:
5555.png  128 kb
 
Борис Крутов:


A expressão não pôde ser avaliada

Porque não pode a variável ser vista?

Penso que é devido a um corte agressivo de variáveis desnecessárias (vazias, não utilizadas).

Exemplo:

//+------------------------------------------------------------------+
//|                                                     Expert 1.mq5 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//--- input parameters
input int   Input1= 9;
//---
ushort   ushort_d = 19;
uint     uint_d   = 119;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   ushort_d=8;
   uint_d=GetTickCount();
   int d=9;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  }
//+------------------------------------------------------------------+

Podemos ver que'ushort_d' não é calculado e não é utilizado enquanto'uint_d' é pelo menos calculado:


Arquivos anexados:
Expert_1.mq5  2 kb
 

Provavelmente, não está aqui.

Navegar nas páginas do fórum e marcar as páginas visualizadas (alterando a fonte de negrito para normal) não funciona a partir do navegador no telefone e navegando mais tarde no computador. Ao telefone, ao navegar mais tarde, funciona bem.

Em computadores de diferentes endereços, o registo em todos é normal. Ver em casa, na aldeia, depois no escritório))))

Em computadores vin7, cromado. O website está ligado, o cromado também está ligado à mesma conta.

No meu telefone androide 6 com lançador Apex e o mesmo cromado. O site está registado, o cromado também está registado na mesma conta que nos computadores.

 
Vladimir Karputov:

Penso que devido ao corte agressivo de variáveis desnecessárias (vazias, não utilizadas).

Exemplo:

Vemos que'ushort_d' não é calculado e não é utilizado, enquanto que'uint_d' é pelo menos calculado:


***

Também não funciona dessa forma. E se mudarmos 'ushort para int', o programador vê a variável

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • 2021.02.09
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
Boris:

***

Isto também não funciona. E se mudar de ushort para int, ele vê a variável

Inserir o código correctamente (utilizar o botão Código).

 
Vladimir Karputov:

Inserir o código correctamente (utilizar o botão ).

#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"



ushort=GetTickCount64();
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
a=GetTickCount64();
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  a=a++;
  Comment("a: ",a,"/n");
}
Исправил
 
Boris:

O código não é compilado devido a um grande número de erros. Consertar o código.

 
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"



ushort a;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
a=(ushort)GetTickCount();
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  a++;
  Comment("a: ",a,"/n");
}
Vladimir Karputov:

O código não é compilado devido a um grande número de erros. Consertar o código.

Fixado por