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

 
그러한 어레이는 지능적으로 초기화될 수 없다는 것을 올바르게 이해하고 있습니까?
 class A {};

A* const Array[] = { NULL };

그리고 함수/메서드에 대한 입력 매개변수로만 의미가 있습니까?

 void f( const A* const &Array[] );
 

MT4 빌드 1090

 void OnStart ()
{
   ResetLastError ();
   ObjectCreate ( ChartID (),"SomeName", OBJ_ARROW , 0 , 0 , 0 );
   ObjectCreate ( ChartID (),"SomeName", OBJ_ARROW , 0 , 0 , 0 );
   Print ("Ошибка повторного создания объекта на ТЕКУЩЕМ чарте Error=", GetLastError ());
   ObjectDelete ( ChartID (),"SomeName");

   ResetLastError ();
   ObjectCreate ( ChartFirst (),"SomeName", OBJ_ARROW , 0 , 0 , 0 );
   ObjectCreate ( ChartFirst (),"SomeName", OBJ_ARROW , 0 , 0 , 0 );
   Print ("Ошибка повторного создания объекта на ПЕРВОМ чарте Error=", GetLastError ());
   ObjectDelete ( ChartFirst (),"SomeName");

   ResetLastError ();
   ObjectCreate ( ChartNext ( ChartFirst ()),"SomeName", OBJ_ARROW , 0 , 0 , 0 );
   ObjectCreate ( ChartNext ( ChartFirst ()),"SomeName", OBJ_ARROW , 0 , 0 , 0 );
   Print ("Ошибка повторного создания объекта на НЕ ТЕКУЩЕМ чарте Error=", GetLastError ());
   ObjectDelete ( ChartNext ( ChartFirst ()),"SomeName");

   ResetLastError();
   ObjectCreate(0,"SomeName",OBJ_ARROW,0,0,0);
   ObjectCreate(0,"SomeName",OBJ_ARROW,0,0,0);
   Print("Ошибка повторного создания объекта на ТЕКУЩЕМ чарте Error=", GetLastError ());
   ObjectDelete(0,"SomeName");
   
   ResetLastError();

   Print (" __MQL4BUILD__ = ", __MQL4BUILD__ ," TERMINAL_BUILD = ", TERMINAL_BUILD );
}

현재 차트에서 개체 를 다시 만드는 중 오류 발생 오류 = 4200


NOT CURRENT 차트에서 개체를 다시 만드는 동안 오류가 발생했습니다. 오류=0

벌레?
 

스크립트 확인:

모든 터미널 차트를 통해 실행되고 이름이 반복되는 개체를 만들고 로그에 오류를 표시합니다.

차트에 생성된 개체 의 검색 속도를 즉시 확인합니다.

 void OnStart ()
  {

   Print ( "__MQL4BUILD__ = " , __MQL4BUILD__ , " TERMINAL_BUILD = " , TERMINAL_BUILD );

   ResetLastError ();
//--- переменные для идентификаторов графиков 
   long currChart,prevChart= ChartFirst ();
   int i= 0 ,limit= 100 ;
   Print ( "ChartFirst = " , ChartSymbol (prevChart), " ID = " ,prevChart);
//создадим дублирующий объект для графика и выведем ошибку
   ObjectCreate (prevChart, "SomeName" , OBJ_ARROW , 0 , 0 , 0 );
   ObjectCreate (prevChart, "SomeName" , OBJ_ARROW , 0 , 0 , 0 );
   Print ( " Error on creating duplicate object - GetLastError=" , GetLastError ());
   ObjectDelete (prevChart, "SomeName" );
   ObjectFindSearchBench( 1000 ,prevChart); //SearchBench
   while (i<limit) // у нас наверняка не больше 100 открытых графиков 
     {

      currChart= ChartNext (prevChart); // на основании предыдущего получим новый график 
       if (currChart< 0 ) break ;           // достигли конца списка графиков 
       Print (i, " " , ChartSymbol (currChart), " ID =" ,currChart);
      prevChart=currChart; // запомним идентификатор текущего графика для ChartNext() 
                           //создадим дублирующиеся объекты
       ResetLastError ();
       ObjectCreate (prevChart, "SomeName" , OBJ_ARROW , 0 , 0 , 0 );
       ObjectCreate (prevChart, "SomeName" , OBJ_ARROW , 0 , 0 , 0 );
       Print ( " Error on creating duplicate object - GetLastError=" , GetLastError ());
       ObjectDelete (prevChart, "SomeName" );
      ObjectFindSearchBench( 1000 ,prevChart); //SearchBench
      i++; // не забудем увеличить счетчик 
     }


  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
ulong ObjectFindSearchBench( const int Amount= 1 e3, long chart= 0 )
  {
   int b= 0 ,f= 0 ;
   
   ResetLastError ();
   if (chart== 0 ) chart= ChartID ();
   const ulong StartTime= GetMicrosecondCount ();
//создадим объект и потом найдем его Amount раз
   ObjectCreate (chart, "SomeName" , OBJ_ARROW , 0 , 0 , 0 );

   for ( int w= 0 ;w<Amount;w++)
     {
       if ( ObjectFind (chart, "SomeName" )>= 0 )
        {
         b++;
        }
       else f++;
     }
   Print ( "Time to search Object by name " ,Amount, " times is " , GetMicrosecondCount ()-StartTime, " microseconds. ChartID=" ,chart, " found obj: " ,b, " not found obj: " ,f,chart== ChartID ()? " CURRENT CHART" : "" );
   return ( GetMicrosecondCount () - StartTime);
  }

스크립트 실행 어렵지 않은 분 직접 확인해보세요, 플리즈

내 로그:

0 19:51:01.427 테스트 CHFJPY.e,H1: __MQL4BUILD__ = 553 TERMINAL_BUILD = 5

0 19:51:01.427 테스트 CHFJPY.e, H1: ChartFirst = EURCAD.e ID = 131498872250507535

0 19:51:01.427 테스트 CHFJPY.e, H1: 중복 개체 생성 오류 - GetLastError=0

0 19:51:01.443 test CHFJPY.e,H1: 이름으로 개체를 1000번 검색하는 데 걸리는 시간은 15129 마이크로초입니다. ChartID=131498872250507535 발견된 개체: 1000 개체를 찾을 수 없음: 0

0 19:51:01.443 테스트 CHFJPY.e, H1: 0 EURCAD.e ID =131500664876581320

0 19:51:01.443 테스트 CHFJPY.e, H1: 중복 개체 생성 오류 - GetLastError=0

0 19:51:01.463 test CHFJPY.e,H1: 이름으로 개체를 1000번 검색하는 데 걸리는 시간은 20278 마이크로초입니다. ChartID=131500664876581320 발견된 개체: 1000 개체를 찾을 수 없음: 0

0 19:51:01.463 테스트 CHFJPY.e, H1: 1 CADJPY.e ID =131502896347051608

0 19:51:01.463 테스트 CHFJPY.e, H1: 중복 개체 생성 오류 - GetLastError=0

0 19:51:01.479 test CHFJPY.e,H1: 이름으로 개체를 1000번 검색하는 데 걸리는 시간은 15825 마이크로초입니다. ChartID=131502896347051608 발견된 개체: 1000 개체를 찾을 수 없음: 0

0 19:51:01.479 테스트 CHFJPY.e,H1: 2 EURCAD.e ID =131502897682567227

0 19:51:01.479 테스트 CHFJPY.e, H1: 중복 개체 생성 오류 - GetLastError=0

0 19:51:01.529 test CHFJPY.e,H1: 이름으로 개체를 1000번 검색하는 데 걸리는 시간은 50372마이크로초 입니다. ChartID=131502897682567227 발견된 개체: 1000 개체를 찾을 수 없음: 0

0 19:51:01.529 테스트 CHFJPY.e, H1: 3 GBPJPY.e ID =131505457001351910

0 19:51:01.529 테스트 CHFJPY.e, H1: 중복 개체 생성 오류 - GetLastError=0

0 19:51:01.541 test CHFJPY.e,H1: 이름으로 개체를 1000번 검색하는 데 걸리는 시간은 11587 마이크로초입니다. ChartID=131505457001351910 발견된 개체: 1000 개체를 찾을 수 없음: 0

0 19:51:01.541 테스트 CHFJPY.e, H1: 4GBPCHF.e ID=131505572251554422

0 19:51:01.541 테스트 CHFJPY.e, H1: 중복 개체 생성 오류 - GetLastError=0

0 19:51:01.554 test CHFJPY.e,H1: 이름으로 개체를 1000번 검색하는 데 걸리는 시간은 13026 마이크로초입니다. ChartID=131505572251554422 발견된 개체: 1000 개체를 찾을 수 없음: 0

0 19:51:01.554 테스트 CHFJPY.e, H1: 5AUDCHF.e ID=131505732457965009

0 19:51:01.554 테스트 CHFJPY.e, H1: 중복 개체 생성 오류 - GetLastError=0

0 19:51:01.567 test CHFJPY.e,H1: 이름으로 개체를 1000번 검색하는 데 걸리는 시간은 12949 마이크로초입니다. ChartID=131505732457965009 발견된 개체: 1000 개체를 찾을 수 없음: 0

0 19:51:01.567 테스트 CHFJPY.e,H1: 6 USDCHF.e ID =131506110968531490

0 19:51:01.567 테스트 CHFJPY.e, H1: 중복 개체 생성 오류 - GetLastError=0

0 19:51:01.587 test CHFJPY.e,H1: 이름으로 개체를 1000번 검색하는 데 걸리는 시간은 20701 마이크로초입니다. ChartID=131506110968531490 발견된 개체: 1000 개체를 찾을 수 없음: 0

0 19:51:01.587 테스트 CHFJPY.e, H1: 7 AUDUSD.e ID =131507551330304303

0 19:51:01.587 테스트 CHFJPY.e, H1: 중복 개체 생성 오류 - GetLastError=0

0 19:51:01.606 test CHFJPY.e,H1: 이름으로 개체를 1000번 검색하는 데 걸리는 시간은 18558 마이크로초입니다. ChartID=131507551330304303 발견된 개체: 1000 개체를 찾을 수 없음: 0

0 19:51:01.606 테스트 CHFJPY.e,H1: 8 EURCAD.e ID =131507869928472695

0 19:51:01.606 테스트 CHFJPY.e, H1: 중복 개체 생성 오류 - GetLastError=0

0 19:51:01.619 test CHFJPY.e,H1: 이름으로 개체를 1000번 검색하는 데 걸리는 시간은 13219 마이크로초입니다. ChartID=131507869928472695 발견된 개체: 1000 개체를 찾을 수 없음: 0

0 19:51:01.619 테스트 CHFJPY.e, H1: 9 EURAUD.e ID =131507916092399918

0 19:51:01.619 테스트 CHFJPY.e, H1: 중복 개체 생성 오류 - GetLastError=0

0 19:51:01.632 test CHFJPY.e,H1: 이름으로 개체를 1000번 검색하는 데 걸리는 시간은 12294 마이크로초입니다. ChartID=131507916092399918 발견된 개체: 1000 개체를 찾을 수 없음: 0

0 19:51:01.632 테스트 CHFJPY.e, H1: 10 CHFJPY.e ID=131508222052591588

0 19:51:01.632 테스트 CHFJPY.e, H1: 중복 개체 생성 오류 - GetLastError=4200

0 19:51:01.632 test CHFJPY.e,H1: 이름으로 개체를 1000번 검색하는 데 걸리는 시간은 98 마이크로초입니다. ChartID=131508222052591588 발견된 개체: 1000 개체를 찾을 수 없음: 0 현재 차트


검색 속도가 100~500배 차이가 난다...

그리고 너?

 
Kirill Belousov :

스크립트 확인:

모든 터미널 차트를 통해 실행되고 이름이 반복되는 개체를 만들고 로그에 오류를 표시합니다.

차트에 생성된 개체 의 검색 속도를 즉시 확인합니다.

스크립트 실행 어렵지 않은 분 직접 보세요 플리즈


검색 속도가 100~500배 차이가 난다...

그리고 너?


 0        19 : 59 : 35.973     PeriodConverter GBPUSDf,M15: __MQL4BUILD__ = 553 TERMINAL_BUILD = 5
0        19 : 59 : 35.973     PeriodConverter GBPUSDf,M15: ChartFirst = AUDUSDf ID = 130936784496551158
0        19 : 59 : 35.973     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        19 : 59 : 36.013     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 32430 microseconds. ChartID = 130936784496551158 found obj: 1000 not found obj: 0
0        19 : 59 : 36.013     PeriodConverter GBPUSDf,M15: 0 USDCADf ID = 130936784496551160
0        19 : 59 : 36.013     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        19 : 59 : 36.023     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 11738 microseconds. ChartID = 130936784496551160 found obj: 1000 not found obj: 0
0        19 : 59 : 36.023     PeriodConverter GBPUSDf,M15: 1 GBPAUDf ID = 130936784496551163
0        19 : 59 : 36.023     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        19 : 59 : 36.033     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 7645 microseconds. ChartID = 130936784496551163 found obj: 1000 not found obj: 0
0        19 : 59 : 36.033     PeriodConverter GBPUSDf,M15: 2 EURUSDf ID = 130936784496551164
0        19 : 59 : 36.033     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        19 : 59 : 36.043     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 8734 microseconds. ChartID = 130936784496551164 found obj: 1000 not found obj: 0
0        19 : 59 : 36.043     PeriodConverter GBPUSDf,M15: 3 EURJPYf ID = 130936784496551165
0        19 : 59 : 36.043     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        19 : 59 : 36.053     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 12249 microseconds. ChartID = 130936784496551165 found obj: 1000 not found obj: 0
0        19 : 59 : 36.053     PeriodConverter GBPUSDf,M15: 4 EURCADf ID = 130936784496551166
0        19 : 59 : 36.053     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        19 : 59 : 36.063     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 15107 microseconds. ChartID = 130936784496551166 found obj: 1000 not found obj: 0
0        19 : 59 : 36.063     PeriodConverter GBPUSDf,M15: 5 USDCHFf ID = 130936784496551167
0        19 : 59 : 36.063     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        19 : 59 : 36.093     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 31361 microseconds. ChartID = 130936784496551167 found obj: 1000 not found obj: 0
0        19 : 59 : 36.093     PeriodConverter GBPUSDf,M15: 6 GBPUSDf ID = 130936784496551169
0        19 : 59 : 36.093     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 4200
0        19 : 59 : 36.093     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 156 microseconds. ChartID = 130936784496551169 found obj: 1000 not found obj: 0 CURRENT CHART
0        19 : 59 : 36.093     PeriodConverter GBPUSDf,M15: 7 AUDCADf ID = 130936784496551170
0        19 : 59 : 36.093     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        19 : 59 : 36.103     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 10455 microseconds. ChartID = 130936784496551170 found obj: 1000 not found obj: 0
0        19 : 59 : 36.103     PeriodConverter GBPUSDf,M15: 8 CADCHFf ID = 130936784496551171
0        19 : 59 : 36.103     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        19 : 59 : 36.133     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 28968 microseconds. ChartID = 130936784496551171 found obj: 1000 not found obj: 0
0        19 : 59 : 36.133     PeriodConverter GBPUSDf,M15: 9 NZDCADf ID = 130936784496551175
0        19 : 59 : 36.133     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        19 : 59 : 36.153     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 18735 microseconds. ChartID = 130936784496551175 found obj: 1000 not found obj: 0
0        19 : 59 : 36.153     PeriodConverter GBPUSDf,M15: 10 NZDCHFf ID = 130936784496551176
0        19 : 59 : 36.153     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        19 : 59 : 36.163     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 10593 microseconds. ChartID = 130936784496551176 found obj: 1000 not found obj: 0
0        19 : 59 : 36.163     PeriodConverter GBPUSDf,M15: 11 NZDUSDf ID = 130936784496551178
0        19 : 59 : 36.163     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        19 : 59 : 36.193     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 23403 microseconds. ChartID = 130936784496551178 found obj: 1000 not found obj: 0
0        19 : 59 : 36.193     PeriodConverter GBPUSDf,M15: 12 EURNZDf ID = 130936912624549660
0        19 : 59 : 36.193     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        19 : 59 : 36.213     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 19404 microseconds. ChartID = 130936912624549660 found obj: 1000 not found obj: 0
0        19 : 59 : 36.213     PeriodConverter GBPUSDf,M15: 13 EURAUDf ID = 130936912624549662
0        19 : 59 : 36.213     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        19 : 59 : 36.213     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 7570 microseconds. ChartID = 130936912624549662 found obj: 1000 not found obj: 0
0        19 : 59 : 36.213     PeriodConverter GBPUSDf,M15: uninit reason 0
0        19 : 59 : 36.223     Script PeriodConverter GBPUSDf,M15: removed


0        20 : 00 : 18.966     Script PeriodConverter GBPUSDf,M15: loaded successfully
0        20 : 00 : 18.986     PeriodConverter GBPUSDf,M15: initialized
0        20 : 00 : 18.986     PeriodConverter GBPUSDf,M15: __MQL4BUILD__ = 553 TERMINAL_BUILD = 5
0        20 : 00 : 18.986     PeriodConverter GBPUSDf,M15: ChartFirst = AUDUSDf ID = 130936784496551158
0        20 : 00 : 18.986     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        20 : 00 : 19.036     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 42453 microseconds. ChartID = 130936784496551158 found obj: 1000 not found obj: 0
0        20 : 00 : 19.036     PeriodConverter GBPUSDf,M15: 0 USDCADf ID = 130936784496551160
0        20 : 00 : 19.036     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        20 : 00 : 19.046     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 17436 microseconds. ChartID = 130936784496551160 found obj: 1000 not found obj: 0
0        20 : 00 : 19.046     PeriodConverter GBPUSDf,M15: 1 GBPAUDf ID = 130936784496551163
0        20 : 00 : 19.046     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        20 : 00 : 19.086     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 33961 microseconds. ChartID = 130936784496551163 found obj: 1000 not found obj: 0
0        20 : 00 : 19.086     PeriodConverter GBPUSDf,M15: 2 EURUSDf ID = 130936784496551164
0        20 : 00 : 19.086     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        20 : 00 : 19.096     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 8201 microseconds. ChartID = 130936784496551164 found obj: 1000 not found obj: 0
0        20 : 00 : 19.096     PeriodConverter GBPUSDf,M15: 3 EURJPYf ID = 130936784496551165
0        20 : 00 : 19.096     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        20 : 00 : 19.106     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 13671 microseconds. ChartID = 130936784496551165 found obj: 1000 not found obj: 0
0        20 : 00 : 19.106     PeriodConverter GBPUSDf,M15: 4 EURCADf ID = 130936784496551166
0        20 : 00 : 19.106     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        20 : 00 : 19.136     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 28041 microseconds. ChartID = 130936784496551166 found obj: 1000 not found obj: 0
0        20 : 00 : 19.136     PeriodConverter GBPUSDf,M15: 5 USDCHFf ID = 130936784496551167
0        20 : 00 : 19.136     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        20 : 00 : 19.146     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 12396 microseconds. ChartID = 130936784496551167 found obj: 1000 not found obj: 0
0        20 : 00 : 19.146     PeriodConverter GBPUSDf,M15: 6 GBPUSDf ID = 130936784496551169
0        20 : 00 : 19.146     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 4200
0        20 : 00 : 19.146     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 159 microseconds. ChartID = 130936784496551169 found obj: 1000 not found obj: 0 CURRENT CHART
0        20 : 00 : 19.146     PeriodConverter GBPUSDf,M15: 7 AUDCADf ID = 130936784496551170
0        20 : 00 : 19.146     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        20 : 00 : 19.236     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 91767 microseconds. ChartID = 130936784496551170 found obj: 1000 not found obj: 0
0        20 : 00 : 19.236     PeriodConverter GBPUSDf,M15: 8 CADCHFf ID = 130936784496551171
0        20 : 00 : 19.236     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        20 : 00 : 19.296     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 53496 microseconds. ChartID = 130936784496551171 found obj: 1000 not found obj: 0
0        20 : 00 : 19.296     PeriodConverter GBPUSDf,M15: 9 NZDCADf ID = 130936784496551175
0        20 : 00 : 19.296     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        20 : 00 : 19.378     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 80612 microseconds. ChartID = 130936784496551175 found obj: 1000 not found obj: 0
0        20 : 00 : 19.378     PeriodConverter GBPUSDf,M15: 10 NZDCHFf ID = 130936784496551176
0        20 : 00 : 19.378     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        20 : 00 : 19.418     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 42953 microseconds. ChartID = 130936784496551176 found obj: 1000 not found obj: 0
0        20 : 00 : 19.418     PeriodConverter GBPUSDf,M15: 11 NZDUSDf ID = 130936784496551178
0        20 : 00 : 19.418     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        20 : 00 : 19.438     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 19186 microseconds. ChartID = 130936784496551178 found obj: 1000 not found obj: 0
0        20 : 00 : 19.438     PeriodConverter GBPUSDf,M15: 12 EURNZDf ID = 130936912624549660
0        20 : 00 : 19.438     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        20 : 00 : 19.448     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 9539 microseconds. ChartID = 130936912624549660 found obj: 1000 not found obj: 0
0        20 : 00 : 19.448     PeriodConverter GBPUSDf,M15: 13 EURAUDf ID = 130936912624549662
0        20 : 00 : 19.448     PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError = 0
0        20 : 00 : 19.498     PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 47959 microseconds. ChartID = 130936912624549662 found obj: 1000 not found obj: 0
 
Vitaly Muzichenko :

센카 테이크 볼

그를 닮았다 :)

 
Kirill Belousov :

센카 테이크 볼

그를 닮았다 :)

하나도 이해하지 못했지만 여전히 재미있습니다.

 
Vitaly Muzichenko :

하나도 이해하지 못했지만 여전히 재미있습니다.

벌레.

NOT CURRENT에서 중복 객체를 생성할 때 오류 4200이 발생하지 않습니다(현재 객체에서 여전히 제공 - [로그의 "CURRENT CHART" 참조]).

또한 NON-CURRENT 차트에서 개체를 검색하는 것이 현재 차트에서 검색하는 것보다 최대 500배 더 많은 시간이 걸린다는 것도 발견되었습니다.

:) , 내가 이것을 가지고 있는 유일한 사람이 아니라는 것이 밝혀졌기 때문에

 
fxsaber :
그러한 어레이는 지능적으로 초기화될 수 없다는 것을 올바르게 이해하고 있습니까?

그리고 함수/메서드에 대한 입력 매개변수로만 의미가 있습니까?

 class A {
public :
         void f() {}
};
A* const a[ 10 ] = { NULL };
void OnStart ()
{
        A *aa = new A;
         ((A *)a[ 9 ]) = aa; //нет ошибки при компиляции
               a[ 9 ].f();   //нет ошибки при выполнении
         Print ( a[ 9 ] == aa ); //Результат: false
}

가능하다고 생각할 수도 있지만 예제에서 알 수 있듯이 미묘한 오류가 발생합니다.

 
A100 :
((A *)a[ 9 ]) = aa; //нет ошибки при компиляции

예, 여기에 컴파일러 버그가 있지만 실행은 이 지점을 넘지 않습니다. 유효하지 않은 포인터 입니다.

따라서 실제로 초기화는 불가능합니다.

 
fxsaber :

예, 컴파일러 버그가 있지만 실행은 이 지점을 넘어서지 않습니다. 잘못된 포인터입니다.

그런 다음 버그는 32비트 버전의 경우 오류 없이 실행된다는 사실에도 있습니다. 유효하지 않은 포인터 - 클래스에 멤버를 추가하는 경우에만(예: int i)