오류, 버그, 질문 - 페이지 2955

 

그리고 어떻게 될 것인가? 데이터 압축 및 압축 풀기가 제대로 작동하지 않습니다.

이것은 시험이다

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

결과. 4001 - 예기치 않은 내부 오류

 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
개발자에게 이 문제를 해결해 달라고 요청합니다.
 
DMITRII PECHERITSA :

일반적으로 메서드는 가상 이고 파생 클래스에서 메서드가 재정의되고 이미 다른 것이 사용 중이기 때문에 두 옵션 모두 적합하지 않습니다.

그리고 어떤 특별한 경우에는 수업 없이도 할 수 있습니다.

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


표현식을 평가할 수 없음 오류

왜 그는 변수를 볼 수 없습니까?

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


표현식을 평가할 수 없음 오류

왜 그는 변수를 볼 수 없습니까?

불필요한(빈, 사용하지 않는) 변수를 공격적으로 잘라내기 때문이라고 생각합니다.

예시:

 //+------------------------------------------------------------------+
//|                                                     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 ()
  {
//---
  }
//+------------------------------------------------------------------+

' ushort_d '는 평가되지도 사용되지도 않은 반면 ' uint_d '는 최소한 평가됩니다.


파일:
Expert_1.mq5  2 kb
 

아마도 여기가 아닐 것입니다.

포럼의 페이지를 보고 본 표시(글꼴을 굵게에서 보통으로 변경)는 전화기의 브라우저에서 작동하지 않고 나중에 컴퓨터에서 보기도 작동하지 않습니다. 이후에 모든 규칙을 볼 때 전화로.

다른 주소의 컴퓨터에서 모든 규칙에 로그인했습니다. 집에서, 마을에서, 사무실에서 보기)))

윈도우 7에서 크롬. 사이트가 로그인되어 있고 크롬도 하나의 계정으로 로그인되어 있습니다.

Apex 런처와 크롬이 있는 Android 6 휴대폰에서. 사이트가 로그인되어 있고 크롬도 컴퓨터에서와 같은 계정으로 로그인되어 있습니다.

 
Vladimir Karputov :

불필요한(빈, 사용하지 않는) 변수를 공격적으로 잘라내기 때문이라고 생각합니다.

예시:

' ushort_d '는 평가되지도 사용되지도 않은 반면 ' uint_d '는 최소한 평가됩니다.


***

그것도 작동하지 않습니다. ushort 를 int로 변경하면 변수가 표시됩니다.

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

***

그것도 작동하지 않습니다. ushort 를 int로 변경하면 변수가 표시됩니다.

코드를 올바르게 붙여넣으십시오 (버튼 사용 암호 ).

 
Vladimir Karputov :

코드를 올바르게 붙여넣습니다 (버튼 사용).

#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 :

엄청난 수의 오류로 인해 코드가 컴파일되지 않습니다. 코드를 수정합니다.

 
#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 :

엄청난 수의 오류로 인해 코드가 컴파일되지 않습니다. 코드를 수정합니다.

수정됨