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

 
Sergey Dzyublik :

글이 많아서 다 읽지 못했습니다.
그러나 디버그 버전에서는 작동하지만 릴리스 버전에서는 작동하지 않거나 그 반대의 경우에는 특히 클래스/구조의 모든 변수와 필드가 초기화되었는지 확인하십시오.

초기화가 필요한 데이터를 초기화했습니다. 그리고 갑자기 임의의 데이터가 어딘가에 나타나면 프로그램 자체에 오류가 발생합니다(예: Array out of range 또는 Invalid pointer ). 적어도 디버거에는 영향을 미치지 않습니다. 그리고 그러한 버그를 찾는 데 도움이 됩니다.

 
Mihail Matkovskij :

아마도 다음과 같은 결함이 있습니다.

( ME5(빌드 2390)에 의해 수정되지 않음 ) ** (신규) 디버거, StepInto(F11)가 작동하지 않고 중단점이 설정되었습니다.

 
TheXpert :
디버거가 중단점을 연결할 수 없는 복잡한 파일 구조가 있는 경우 디버거 문제일 수 있습니다.

프로젝트 에서 사용하는 표준 UI 요소의 파일 구조는 내 개발보다 훨씬 더 복잡하다고 생각합니다. 이런 일을 하려면 정말 열심히 일해야 합니다. 그리고 그들이 말하는대로 그것을 가져 와서 사용하십시오. 내 경우처럼 모든 것을 합치면. 그것은 실제로 복잡한 것으로 밝혀졌습니다. 그러나 실행 중인 프로그램의 경우 이는 매우 정상입니다.

 
fxsaber :

처음에는 이것으로 이어졌습니다.


어느 단계에서는 차지하는 시간의 상대적인 부분뿐만 아니라 절대적인 부분도 중요해진다.

C로 조금만 작성하면 변수를 할당하는 좋은 습관을 들이게 될 것입니다.

첫 번째 사용자 함수에서 들어오는 MqlTick 구조는 메모리 할당 없이 즉시 MQL 함수로 전달됩니다.
이러한 기록을 잘못된 코딩이라고 합니다.

 bool GetCurrentTick1( MqlTick &Tick )
{
   return ( SymbolInfoTick ( _Symbol , Tick));
}

두 번째 예에서는 CurrentTick 변수가 생성됩니다. 메모리가 할당됩니다.
그리고 그러한 기록은 더 정확한 것으로 간주됩니다.
메모리가 이미 할당되어 있으므로 추가 비용 없이 입력 데이터가 더 빠르게 처리됩니다.

 bool GetCurrentTick2( MqlTick &Tick, const bool NewTick = false )
{
   static MqlTick CurrentTick ;
  
   if (NewTick)
     SymbolInfoTick ( _Symbol , CurrentTick);
  
  Tick = CurrentTick;
  
   return ( true );
}
 
Roman :

C로 조금만 작성하면 변수를 할당하는 좋은 습관을 들이게 될 것입니다.

조언을 따르십시오. 아마도 할당에 대해 최소한의 아이디어가 있을 것입니다.
 
Roman :

...

그리고 그러한 기록은 더 정확한 것으로 간주됩니다.

누가 고려됩니까? 당신은 적어도 초보자를 위한 속도 chtol을 측정할 것입니다.

 
Alexey Navoykov :

누가 고려됩니까? 당신은 적어도 초보자를 위한 속도 chtol을 측정할 것입니다.

트롤에 대한 관심이 너무 많습니다.

 
TheXpert :
조언을 따르십시오. 아마도 할당에 대해 최소한의 아이디어가 있을 것입니다.

할당은 메모리 할당 을 의미했습니다.
그리고 클래스로서의 직접적인 의미가 아닙니다.
사용자 정의 함수에는 자체 범위가 있습니다.

 
Alexey Navoykov :

누가 고려됩니까? 당신은 적어도 초보자를 위한 속도 chtol을 측정할 것입니다.

이전 페이지에서 fxsaber는 측정값을 제공했습니다.
왜 이런 일이 일어나는지 설명했습니다.
항상 메모리를 정적으로 또는 동적으로 할당하십시오.

 
Sergey Dzyublik :

아마도 다음과 같은 결함이 있습니다.

( ME5(빌드 2390)에 의해 수정되지 않음 ) ** (신규) 디버거, StepInto(F11)가 작동하지 않고 중단점이 설정되었습니다.

아마도... 위에서 설명한 int CCheckGroup::itemCheckState(const string item) 메서드로 이동하려고 했습니다. 그리고 처음에는 디버거가 거기로 이동합니다. 그러나 종료하자마자 디버거가 더 이상 그것을 보지 않고 중단점이나 "Step in step"이 작동하지 않습니다. 음, 일시적으로 Print() 및 Alert() 함수를 처리해야 합니다.