오류, 버그, 질문 - 페이지 1856 1...184918501851185218531854185518561857185818591860186118621863...3184 새 코멘트 Andrey Dik 2017.04.14 11:32 #18551 Andrey Dik : 인코딩을 어떻게 볼 수 있습니까? 타사 편집기에서 텍스트 유형을 변경하여 변경되었다는 것을 알았지만 어떤 인코딩을 찾는 방법을 모르겠습니다. 안드레이 카팀리안스키 : ME 1580: Win-1251(ANSI)에서 EA 생성 예, Akepadom은 인코딩이 Win-1251(ANSI)인 반면 이전 파일에는 UTF-16LE 1200이 있음을 알 수 있습니다. 새 파일의 기본 인코딩이 변경되었다는 의미입니까? fxsaber 2017.04.14 11:41 #18552 거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼 mql5 언어의 특징, 미묘함 및 작업 방법 fxsaber , 2017.04.14 11:40 그래, 비뚤어진 브로커. 그들은 여전히 거기에 음수를 채울 것입니다. 브로커가 기호를 설정할 때 개발자가 각 매개 변수에 대해 가능한 값의 범위에 제한이 있으면 좋을 것입니다. Vladislav Andruschenko 2017.04.14 11:45 #18553 시장에서 제품을 업데이트할 때 차트에 있는 이 제품의 모든 설정이 기본 설정으로 재설정되는 것을 알았습니다. 이것은 잘못된 것입니다. 그것을 피하는 방법? Artyom Trishkin 2017.04.14 23:28 #18554 ArrayMaximum() 및 ArrayMinimum() - 전달된 매개변수의 순서가 도움말과 일치하지 않습니다. [삭제] 2017.04.16 16:02 #18555 fxsaber : 약간의 해킹. 할당 우회 결과 이것은 구명 해킹이 아니라 변태입니다. 당신에게 이것을 기대하지 않았습니다. fxsaber 2017.04.16 16:14 #18556 Koldun Zloy : 이것은 구명 해킹이 아니라 변태입니다. 당신에게 이것을 기대하지 않았습니다. 그렇다면 이것은 당신을위한 것입니다 거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼 라이브러리: TypeToBytes fxsaber , 2017.04.13 13:34 이 기능이 잠재적인 버그를 식별하는 데 어떻게 유용할 수 있는지에 대한 예입니다. 우리는 스크립트를 작성하고 실행합니다. #include <TypeToBytes.mqh> struct STRUCT { int i; STRUCT() : i( 0 ) {} template < typename T> void operator =( T& ) {} }; #define PRINT(A) :: Print ( #A + " = " + ( string )(A)); void OnStart () { PRINT(_WRONG_ASSIGN_OPERATOR(STRUCT)) } 결과. _WRONG_ASSIGN_OPERATOR(STRUCT) = true 이것은 할당 연산자가 같은 유형의 구조체에 구조체를 복사하지 않는다는 것을 알려줍니다. 구조에 더 추가하면, void operator =( STRUCT &Value ) { this .i = 0 ; } 그러면 결과는 같을 것입니다. 이 연산자를 수정하면 void operator =( STRUCT &Value ) { this .i = Value.i; } 모든 것이 정확해야 하지만 라이브러리는 그렇지 않다고 말합니다. 아마도 이것이 이 예의 가장 미묘한 요점일 것입니다. 우리는 수정 #include <TypeToBytes.mqh> struct STRUCT { int i; STRUCT() : i( 0 ) {} template < typename T> void operator =( T& ) {} void operator =( const STRUCT &Value ) { this .i = Value.i; } }; #define PRINT(A) :: Print ( #A + " = " + ( string )(A)); void OnStart () { PRINT(_WRONG_ASSIGN_OPERATOR(STRUCT)) } 그리고 결과를 얻는다 _WRONG_ASSIGN_OPERATOR(STRUCT) = false 이제 복사 연산자가 올바르게 작성되었습니다! 유사하게, 모든 단순 구조 의 할당/복사 연산자의 정확성을 확인할 수 있습니다. [삭제] 2017.04.16 16:59 #18557 1. 다음과 같이 작성할 때: STRUCT StructCopy1 = Struct; operator= 대신 복사 생성자를 호출해야 합니다. 그러나 이것은 Metaquote에 대한 질문입니다. 2. 컴파일러에서 생성한 복사 생성자가 호출되지 않으면 직접 작성할 수 있습니다. struct STRUCT { int i; STRUCT(){} STRUCT( int _i ) : i(_i){} STRUCT( const STRUCT& other ) { i = other.i; } void operator =( const STRUCT& ) { this .i = 5 ; } }; 이제 operator=가 호출되지 않습니다. 3. 구조체의 멤버를 사용할 수 있으므로 다음과 같이 간단하게 작성할 수 있습니다. StructCopy1.i = Struct.i; 비공개로 설정하면 구명 해킹도 도움이 되지 않습니다. 4. 그리고 가장 중요한 것은 operator=가 수행되어 모든 할당이 주변이 아닌 그것을 통과하도록 합니다. 일반적으로 복사 생성자도 함께 정의됩니다. 네. 예를 살펴보았습니다. 많은 혜택을 보지 못했습니다. fxsaber 2017.04.16 17:32 #18558 Koldun Zloy : 1. 다음과 같이 작성할 때: operator= 대신 복사 생성자를 호출해야 합니다. 그러나 이것은 Metaquote에 대한 질문입니다. 2. 컴파일러에서 생성한 복사 생성자가 호출되지 않으면 직접 작성할 수 있습니다. 이제 operator=가 호출되지 않습니다. 3. 구조체의 멤버를 사용할 수 있으므로 다음과 같이 간단하게 작성할 수 있습니다. 비공개로 설정하면 구명 해킹도 도움이 되지 않습니다. 4. 그리고 가장 중요한 것은 operator=가 수행되어 모든 할당이 주변이 아닌 그것을 통과하도록 합니다. 일반적으로 복사 생성자도 함께 정의됩니다. 네. 예를 살펴보았습니다. 많은 혜택을 보지 못했습니다. 라이프 핵은 또한 복사 생성자를 우회합니다. 그리고 이점은 여기 #include <TypeToBytes.mqh> struct STRUCT { int i; STRUCT(){} STRUCT( int _i ) : i(_i){} STRUCT( const STRUCT& other ) { i = 2 ; } void operator =( const STRUCT& ) { // Print(__FUNCSIG__); this .i = 5 ; } }; void OnStart () { STRUCT Struct( 1 ); ArrayPrint(_R(Struct).Bytes); // 1 0 0 0 STRUCT StructCopy1 = Struct; // STRUCT( const STRUCT& ) ArrayPrint(_R(StructCopy1).Bytes); // 2 0 0 0 StructCopy1 = Struct; // void STRUCT::operator=( const STRUCT& ) ArrayPrint(_R(StructCopy1).Bytes); // 5 0 0 0 } _R은 보편적인 것입니다. 따라서 자체 연산자가 있는 외부 구조를 재정의할 필요가 없습니다. #include <TypeToBytes.mqh> struct STRUCT { int i; void operator =( const STRUCT& ) { this .i = 5 ; } }; void OnStart () { STRUCT Structs[] = {{ 1 }, { 2 }}; ArrayPrint(_R(Structs).Bytes); // 1 0 0 0 2 0 0 0 } Andrey Khatimlianskii 2017.04.16 21:10 #18559 Andrey Dik : 예, Akepadom은 인코딩이 Win-1251(ANSI)인 반면 이전 파일에는 UTF-16LE 1200이 있음을 알 수 있습니다. 새 파일의 기본 인코딩이 변경되었다는 의미입니까? 아니요, 항상 Win-1251(ANSI)이 있었고 어느 시점에서 UTF가 추가되었습니다. 그러나 ansi가 아닌 문자가 포함된 소스에만 해당됩니다. Andrey Dik 2017.04.16 21:19 #18560 Andrey Khatimlianskii : 아니요, 항상 Win-1251(ANSI)이 있었고 어느 시점에서 UTF가 추가되었습니다. 그러나 ansi가 아닌 문자가 포함된 소스에만 해당됩니다. 분명한. 고맙습니다. 1...184918501851185218531854185518561857185818591860186118621863...3184 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
인코딩을 어떻게 볼 수 있습니까?
타사 편집기에서 텍스트 유형을 변경하여 변경되었다는 것을 알았지만 어떤 인코딩을 찾는 방법을 모르겠습니다.
ME 1580: Win-1251(ANSI)에서 EA 생성
예, Akepadom은 인코딩이 Win-1251(ANSI)인 반면 이전 파일에는 UTF-16LE 1200이 있음을 알 수 있습니다.
새 파일의 기본 인코딩이 변경되었다는 의미입니까?
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
mql5 언어의 특징, 미묘함 및 작업 방법
fxsaber , 2017.04.14 11:40
그래, 비뚤어진 브로커. 그들은 여전히 거기에 음수를 채울 것입니다.
브로커가 기호를 설정할 때 개발자가 각 매개 변수에 대해 가능한 값의 범위에 제한이 있으면 좋을 것입니다.
시장에서 제품을 업데이트할 때 차트에 있는 이 제품의 모든 설정이 기본 설정으로 재설정되는 것을 알았습니다.
이것은 잘못된 것입니다. 그것을 피하는 방법?
ArrayMaximum() 및 ArrayMinimum() - 전달된 매개변수의 순서가 도움말과 일치하지 않습니다.
약간의 해킹. 할당 우회
결과
이것은 구명 해킹이 아니라 변태입니다.
당신에게 이것을 기대하지 않았습니다.
이것은 구명 해킹이 아니라 변태입니다.
당신에게 이것을 기대하지 않았습니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
라이브러리: TypeToBytes
fxsaber , 2017.04.13 13:34
이 기능이 잠재적인 버그를 식별하는 데 어떻게 유용할 수 있는지에 대한 예입니다.
우리는 스크립트를 작성하고 실행합니다.
결과.
_WRONG_ASSIGN_OPERATOR(STRUCT) = true이것은 할당 연산자가 같은 유형의 구조체에 구조체를 복사하지 않는다는 것을 알려줍니다.
구조에 더 추가하면,
그러면 결과는 같을 것입니다.
이 연산자를 수정하면
모든 것이 정확해야 하지만 라이브러리는 그렇지 않다고 말합니다.
아마도 이것이 이 예의 가장 미묘한 요점일 것입니다.
우리는 수정
그리고 결과를 얻는다
_WRONG_ASSIGN_OPERATOR(STRUCT) = false이제 복사 연산자가 올바르게 작성되었습니다!
유사하게, 모든 단순 구조 의 할당/복사 연산자의 정확성을 확인할 수 있습니다.
1. 다음과 같이 작성할 때:
operator= 대신 복사 생성자를 호출해야 합니다.그러나 이것은 Metaquote에 대한 질문입니다.
2. 컴파일러에서 생성한 복사 생성자가 호출되지 않으면 직접 작성할 수 있습니다.
이제 operator=가 호출되지 않습니다.
3. 구조체의 멤버를 사용할 수 있으므로 다음과 같이 간단하게 작성할 수 있습니다.
비공개로 설정하면 구명 해킹도 도움이 되지 않습니다.
4. 그리고 가장 중요한 것은 operator=가 수행되어 모든 할당이 주변이 아닌 그것을 통과하도록 합니다.
일반적으로 복사 생성자도 함께 정의됩니다.
네. 예를 살펴보았습니다. 많은 혜택을 보지 못했습니다.
1. 다음과 같이 작성할 때:
operator= 대신 복사 생성자를 호출해야 합니다.그러나 이것은 Metaquote에 대한 질문입니다.
2. 컴파일러에서 생성한 복사 생성자가 호출되지 않으면 직접 작성할 수 있습니다.
이제 operator=가 호출되지 않습니다.
3. 구조체의 멤버를 사용할 수 있으므로 다음과 같이 간단하게 작성할 수 있습니다.
비공개로 설정하면 구명 해킹도 도움이 되지 않습니다.
4. 그리고 가장 중요한 것은 operator=가 수행되어 모든 할당이 주변이 아닌 그것을 통과하도록 합니다.
일반적으로 복사 생성자도 함께 정의됩니다.
네. 예를 살펴보았습니다. 많은 혜택을 보지 못했습니다.
_R은 보편적인 것입니다. 따라서 자체 연산자가 있는 외부 구조를 재정의할 필요가 없습니다.
예, Akepadom은 인코딩이 Win-1251(ANSI)인 반면 이전 파일에는 UTF-16LE 1200이 있음을 알 수 있습니다.
새 파일의 기본 인코딩이 변경되었다는 의미입니까?
아니요, 항상 Win-1251(ANSI)이 있었고 어느 시점에서 UTF가 추가되었습니다. 그러나 ansi가 아닌 문자가 포함된 소스에만 해당됩니다.