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

 
Sergey Dzyublik :

최소한 말도 안되는 문장을 작성하기 전에 디버거를 실행하십시오.
두 번째 주기에서는 i == 1 및 j == 1이고 세 번째 주기에서는 둘 다 1만큼 커집니다.

당신은 적어도 뭔가에 대해 낯선 사람을 비난하기 전에 학교를 마치십시오

러시아어 규범에서 문장 끝에 있는 물음표는 문장을 의미하지 않습니다!

 
Igor Makanu :

당신은 적어도 뭔가에 대해 낯선 사람을 비난하기 전에 학교를 마치십시오
러시아어 규범에서 문장 끝에 있는 물음표는 문장을 의미하지 않습니다!

명예훼손 죄송합니다...
나는 당신이 여전히 MQL에서 교활한 const 수정자가 어떻게 작동하는지 알아낼 수 있기를 바랍니다.

오류, 버그, 질문

이고르 마카누 , 2020.03.21 10:26

작년에 잘못 작동했습니다 - 특별히 테스트된 const 수정자
@Ilyas 는 MQL 프로그램이 시작되는 방법을 설명한 것 같습니다. 먼저 설명된 위치에 관계없이 모든 const 및 static이 초기화된 다음 클래스 생성자가 호출됩니다.
좋아, 이 정적 / const 초기화를 사용하면 - 여전히 올바르게 배포될 수 있지만 여기에는 const 수정자가 컴파일러가 이를 확인할 것을 보장하지 않는다는 사실이 있습니다. 매우 예상치 못한 - 내 두 번째 예


 
Sergey Dzyublik :

명예훼손 죄송합니다...
나는 당신이 여전히 MQL에서 교활한 const 수정자가 어떻게 작동하는지 알아낼 수 있기를 바랍니다.

죄송합니다. 구분 기호를 포함한 컨텍스트를 읽으십시오.

당신과 나는 포럼에서 다른 임무를 가지고 있습니다. 당신은 포럼 회원의 질문에 대답하여 자신의 기술 수준을 높이는 포럼 지식인입니다. 반대로 나는 질문하는 것을 두려워하지 않습니다. 포럼에서 그리고 나는 이것에 대한 나의 무지를 보여주는 것을 두려워하지 않습니다 .... 답을 알고 있다면 왜 질문을 합니까?

보안 담당자일 수도 있지만 현재 토론에 첨부하기 위해 포럼 기록에서 내 게시물을 다시 한 번 찾으려고 합니다... 이 메시지의 첫 번째 줄을 읽으십시오!

 

디버깅할 때, 인디케이터가 작동할 때 로그에 갑자기 Stack Overflow를 씁니다. 자체 디버깅할 때 "중요한 오류가 발생했습니다. 디버깅이 중지되었습니다"라는 메시지가 표시됩니다. 다음은 비슷한 주제입니다. https://www.mql5.com/ru/forum/338301 . 그러나 컴파일할 때 컴파일러는 맹세하지 않고 모든 것이 잘 됩니다. 디버깅할 때 프로그램이 충돌하는 지점을 설정할 수 없습니다.

아마도 컴파일러에 관한 모든 것입니까? 어떤 컴파일러가 사용되는지 자세히 알아보지는 않았지만 설정에 다음 그림이 있습니다.

컴파일러

VS가 설치되어 있으므로 이 링크가 설정에 있습니다. 그럼 컴파일러가 맞을까... 근데 VS가 없을 때 컴파일러는 뭐였더라 솔직히 말해서 자세히는 안 봤다. 해당 컴파일러로 돌아가서 프로젝트를 컴파일하려고 시도해야 합니까?

Ошибка при дебаге (Возникла критическая ошибка, отладка остановлена)
Ошибка при дебаге (Возникла критическая ошибка, отладка остановлена)
  • 2020.04.23
  • www.mql5.com
Решил поэкспериментировать со стандартным UI компонентом CAppDialog...
 
fxsaber :

최근에 Digits가 잘못 설정된 기호를 찾았습니다. 브로커에게 수리를 요청했습니다. 그는 즉시 해냈습니다. _Digits 및 Digits()를 변경하여 값이 변경되었는지 확인하지 않았습니다. 그러나 기호가 즉석에서 의미를 변경할 수 있다는 사실입니다.

_Digits의 값은 메모리의 읽기 전용 블록에 맞는 경우에만 변경되지 않아야 합니다.

 
Mihail Matkovskij :

디버깅할 때, 인디케이터가 작동할 때 로그에 갑자기 Stack Overflow를 씁니다. 자체 디버깅할 때 "중요한 오류가 발생했습니다. 디버깅이 중지되었습니다"라는 메시지가 표시됩니다. 다음은 비슷한 주제입니다. https://www.mql5.com/ru/forum/338301 . 그러나 컴파일할 때 컴파일러는 맹세하지 않고 모든 것이 잘 됩니다. 디버깅할 때 프로그램이 충돌하는 지점을 설정할 수 없습니다.

아마도 컴파일러에 관한 모든 것입니까? 어떤 컴파일러가 사용되는지 자세히 알아보지는 않았지만 설정에 다음 그림이 있습니다.

VS가 설치되어 있으므로 이 링크가 설정에 있습니다. 그럼 컴파일러가 맞을까... 근데 VS가 없을 때 컴파일러는 뭐였더라 솔직히 말해서 자세히는 안 봤다. 해당 컴파일러로 돌아가서 프로젝트를 컴파일하려고 시도해야 합니까?

컴파일러를 어떻게 변경할 수 있습니까?

 
A100 :

_Digits의 값은 메모리의 읽기 전용 블록에 맞는 경우에만 변경되지 않아야 합니다.

이 값이 속일 수 있음이 밝혀졌습니다.

 
Andrey Barinov :

항상 가능했습니다(F3). 그들은 일한다.

F3은 실제로 작동하지만 메뉴에는 없습니다.

 
fxsaber :

이 값이 속일 수 있음이 밝혀졌습니다.

따라서 엄격함을 위해 _Digits 대신 Digits() 를 사용해야 합니다. 그런 다음 형식적으로 논리적 모순이 발생하지 않습니다. Digits()는 const 수정자에 의해 바인딩되지 않습니다.

내가 이해하는 한 MT4와의 호환성을 위해 _Digits가 필요했습니다.

 
Igor Makanu :

이 스크립트를 실행하면 sum = 0 값을 반환해야 합니까?

아니면 이 스크립트는 일반적으로 컴파일 오류 를 생성해야 합니까?

함수 f는 모든 반복에서 실행되므로 0이 아닙니다. 귀하의 오해가 무엇인지 이해합니다. C#에서 const 지정자는 컴파일 타임에 평가되는 상수 식에만 사용됩니다. C++에는 이와 유사한 것이 있습니다: constexpr. 그러나 MQL에서는 그렇지 않습니다.