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

 
ozhiganov :

이 사이트에서 다운로드한 모든 브로커의 터미널이 작동을 멈췄습니다.

다시 시작해도 도움이되지 않고 재부팅하고 다시 설치해도 모든 것이 제대로 작동하기 전에 컴퓨터에 아무 것도 설치하지 않았으며 터미널에도 아무 것도 설치하지 않았습니다. 시장에서만 쇼핑.

문제가 무엇인지 이해하기 위해 개별적으로 실행된 지표와 Expert Advisors를 촬영합니다.

자세한 내용을 확인하려면 오류 설명 창에서 "자세히" 버튼을 클릭하십시오. 여기에 전체 텍스트를 복사하십시오.

 

텅 빈, 하나의 지표와 전문가 터미널도 없이 똑같은...

 
Renat :

문제가 무엇인지 이해하기 위해 개별적으로 실행된 지표와 Expert Advisors를 촬영합니다.

자세한 내용을 확인하려면 오류 설명 창에서 "자세히" 버튼을 클릭하십시오. 여기에 전체 텍스트를 복사하십시오.

필요하신가요?

충돌 --> 000007FCE8441F4F 48396B10 cmp [rbx+0x10], rbp

000007FCE8441F53 7530 jnz 0x7fce8441f85


000007FCE8441F55 488B03 mov rax, [rbx]

000007FCE8441F58 4C8BCF mov r9, rdi

000007FCE8441F5B 4D8BC7 mov r8, r15

000007FCE8441F5E 8BD6 mov edx, esi

000007FCE8441F60 488BCB mov rcx, rbx


: #021 00000000000011C8 EIP: 0000000000000000 ESP: 0000000000000000


: #022 0000000000001068 EIP: 000007FCF54245DB ESP: 0000006818CFFAC8

000007FCF54245D1:00000A [000007FCF54245DB] NtYieldExecution(ntdll.dll)

000007FCF5426E50:000833 [000007FCF5427683] RtlUnicodeStringToInteger(ntdll.dll)

000007FCF3681828:00001A [000007FCF3681842] BaseThreadInitThunk( kernel32.dll )

000007FCF54774E8:000021 [000007FCF5477509] RtlVerifyVersionInfo(ntdll.dll)


: #023 000000000000111C EIP: 000007FCF54245DB ESP: 0000006818E5FB18

000007FCF54245D1:00000A [000007FCF54245DB] NtYieldExecution(ntdll.dll)

000007FCF5426E50:000833 [000007FCF5427683] RtlUnicodeStringToInteger(ntdll.dll)

000007FCF3681828:00001A [000007FCF3681842] BaseThreadInitThunk(kernel32.dll)

000007FCF54774E8:000021 [000007FCF5477509] RtlVerifyVersionInfo(ntdll.dll)

 
개인 메시지 로 보낸 전체 텍스트
 

여기서 앞의 예제를 파싱하는 과정에서 MQL과 C++의 근본적인 차이점이 명확해졌습니다.

 class A {};
class B : public A {};
class C {
public :
         virtual int g( A* a ) { return ( 1 ); }
         virtual int g( B* b ) { return ( 2 ); } //здесь полное совпадение
};
class D : public C {
public :
         virtual int g( A* a ) { return ( 3 ); }
};
void OnStart ()
{
        B* b = new B;
        D* d = new D;
         Print ( d.g( b ));
}

MQL(빌드 978)에서 결과는 2(C::g라고 함)이고 C++에서는 결과가 3(D::g라고 함)입니다.

MQL은 인수 유형이 기본 클래스에 있더라도 정확히 일치하는 유형에 우선 순위를 부여하고 C++는 유형과 정확히 일치하지 않더라도 암시적 유형 이 있는 가장 가까운 가능한 클래스에 우선 순위를 부여합니다. 캐스팅이 가능합니다.

최신 C++ 컴파일러에서 결과를 확인하시고 차이점이 확인되면 통일을 위해 C++로 결정하시는 것이 바람직합니다.

 
ozhiganov :
개인 메시지 로 보낸 전체 텍스트
감사합니다. 살펴보겠습니다.
 

복사 생성자와 할당 연산자 는 적어도 언젠가는 계획되어 있습니까???

기본 클래스 A에는 15개의 필드가 있고 두 개의 하위 클래스 B와 C가 이로부터 형성됩니다. 각각에는 +5개의 필드가 더 있습니다.

그리고 20분간의 퀘스트.

 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

A100 , 2014.08.29 16:28

Print(...)를 통해 출력할 때 오류가 발생했습니다.

 void OnStart ()
{
         const int n = 300 ;
         Print ( "n=" , n );
         for ( int i = 0 ; i < n; i++ )
        {
                 Print ( i );
                 if ( i == 0 )
                         Sleep ( 2000 );
        }
}

인쇄할 때 먼저 출력의 일부를 1에서 53까지 건너뜁니다(매번 다른 부분 - 명확한 패턴이 없음), 때때로 중간에 간격이 있습니다.

그런 다음 간격 없이 최대 299개를 인쇄합니다.

시간되시는 분은 실행해보시고, 인쇄에 공백이 있으면 글을 쓰시기 바랍니다. 간격이 없으면 n을 늘리거나(n >= 300에서 간격을 갖기 시작함) 제거하십시오.

         if ( i == 0 )
                 Sleep ( 2000 );

요청에 의해 #1060016 | 2014.08.29 16:30 https://www.mql5.com/ru/users/A100/servicedesk/closed/14774

"인쇄 패스에 대해 어떻게 알릴 수 있습니까?"라는 질문이 제기되었습니다. - 가장 쉬운 옵션 - 누락된 줄 대신 - 줄임표가 있는 한 줄

이러한 행을 보면 사용자는 공백이 있다는 것을 이해하고 .log 파일을 참조해야 함을 이해합니다(예를 들어 행 번호는 필요하지 않음).
 
A100 :

여기서 앞의 예제를 파싱하는 과정에서 MQL과 C++의 근본적인 차이점이 명확해졌습니다.

MQL(빌드 978)에서 결과는 2(C::g라고 함)이고 C++에서는 결과가 3(D::g라고 함)입니다.

MQL은 인수 유형이 기본 클래스에 있더라도 정확히 일치하는 유형에 우선 순위를 부여하고 C++는 유형과 정확히 일치하지 않더라도 암시적 유형 이 있는 가장 가까운 가능한 클래스에 우선 순위를 부여합니다. 캐스팅이 가능합니다.

최신 C++ 컴파일러에서 결과를 확인하시고 차이점이 확인되면 통일을 위해 C++로 결정하시는 것이 바람직합니다.

모든 것이 정확합니다. 정확한 일치에 우선 순위가 부여됩니다. 와 진짜 맞아

왜 그러한 통일이 필요한가? 잘못 설계된 프로그램 처리 통일

 
ALXIMIKS :

복사 생성자와 할당 연산자 는 적어도 언젠가는 계획되어 있습니까???

기본 클래스 A에는 15개의 필드가 있고 두 개의 하위 클래스 B와 C가 이로부터 형성됩니다. 각각에는 +5개의 필드가 더 있습니다.

그리고 20분간의 퀘스트.

예, 우리는 그것을 할 것이지만 이것은 가장 가까운 계획에 없습니다.