2016.09.12 17:21:54.851 Test (RTS-9.16,H1) array out of range in 'Test.mq5' (56,13)
2016.09.12 17:21:54.851 Test (RTS-9.16,H1) ArraySize(Buf.Buffer) = 0
2016.09.12 17:21:54.828 Test (RTS-9.16,H1) ArraySize(Buf.Buffer) = 2067
디버거는 Buf.Buffer가 항상 dynamic array[0], I라고 주장합니다. 저것들. 표시 버퍼. 그러나 크기가 0입니다.
디버거가 릴리스보다 로그에 더 많이 쓰는 것으로 나타났습니다. 릴리스는 그런 것을 말하지 않습니다
#import ...
int send(SOCKET s, void &buf[], int len, int flags);
int send(SOCKET s, void &buf, int len, int flags);
#import
이제 우리는 추한 것들을 차단해야 합니다.
#import ...
int send(SOCKET s, char &buf[], int len, int flags);
int send(SOCKET s, int &buf, int len, int flags);
int send(SOCKET s, char &buf, int len, int flags);
int send(SOCKET s, Cpoint &buf[], int len, int flags);
...
#import
자손에게도 비공개로 하는 것이 좋을 것입니다. 더 나은 이해를 위해. 간단히 말해서 요점이 아닙니다.
자손에서는 그것을 호출해야합니다. )
요점은 그럴 필요가 없다는 것입니다. 내 예를 참조하십시오.
표시기 버퍼 오류
로그의 결과
디버거는 Buf.Buffer가 항상 dynamic array[0], I라고 주장합니다. 저것들. 표시 버퍼. 그러나 크기가 0입니다.
디버거가 릴리스보다 로그에 더 많이 쓰는 것으로 나타났습니다. 릴리스는 그런 것을 말하지 않습니다
인디케이터 버퍼는 MT5에서 한번만 설정할 수 있나요?그리고 비밀이 아니라면 왜 그러한 어려움이 있습니까? 물론 연구에 대한 관심을 제외하고.
이것 대신(그런데 원칙적으로 잘못된 것은 시작 시뿐만 아니라 작동 중에 재초기화가 필요할 수 있기 때문입니다):
다음과 같이:
그리고 왜 그러한 어려움이 비밀이 아니라면? 물론 연구에 대한 관심을 제외하고.
표시기 버퍼로 고정된 동적 배열이 삭제되는 경우가 있습니다. 그런 다음 동적 질량을 다시 생성하고 이를 표시기 버퍼로 할당해야 합니다. 디버거는 할당되었음을 보여줍니다. 그러나 그 크기만 0입니다. 그건 실수야.
문제는 오래된 것으로 밝혀졌습니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
"Indicator buffer #x detached" 메시지를 숨기는 방법
콘스탄틴 이바노프 , 2015.02.17 21:18
내 표시기에서 버퍼 배열을 개체 인스턴스에 저장합니다.
OnDeinit()에서 객체를 삭제할 때 버퍼(SetIndexBuffer())에 바인딩된 모든 배열에 대한 메시지가 표시됩니다.
" 표시기 버퍼 #x 분리됨"
이러한 메시지 없이 버퍼에서 배열을 분리하는 방법은 무엇입니까?
또는 이 메시지를 숨기는 방법은 무엇입니까?
http://forum.mql4.com/63975 지점을 찾았지만 전역 컨텍스트에서 버퍼를 저장하는 제안된 옵션이 저에게 적합하지 않습니다 .
그리고 전역 컨텍스트에서 버퍼를 저장하는 옵션도 저에게 적합하지 않습니다. 흥미롭게도 모든 것이 MT4에서 작동합니다.
기사 초보자를 위한 MQL5에서 Expert Advisors 작성에 대한 단계별 가이드 사용 가능한 코드:
세 기호로 나눌 필요가 없습니까?
기사 초보자를 위한 MQL5에서 Expert Advisors 작성에 대한 단계별 가이드 사용 가능한 코드:
세 기호로 나눌 필요가 없습니까?
이제 우리는 추한 것들을 차단해야 합니다.
내부 인라인 함수에는 제안하지 않지만 가져온 함수에는 안전해야 합니다.