오류, 버그, 질문 - 페이지 2470 1...246324642465246624672468246924702471247224732474247524762477...3184 새 코멘트 Eugeni Neumoin 2019.05.22 14:27 #24691 Igor Zakharov : 그래서 몇초만에 되는게 아니라... 그리고 언어에 대한 설명에서 그것에 대해 무엇보다도 먼저보고해야합니다. 그리고 당신이 찾아야 할 기사에는 없습니다. 포럼은 마지막으로 찾아야 할 곳이어야 합니다. 그렇지 않으면 다음과 같이 나타납니다. 나는 책을 보지만 무화과를 봅니다 ... Alexey Viktorov 2019.05.22 14:55 #24692 왜 그럴 수 있습니까? IM 0 17 : 19 : 04.403 Terminal MetaTrader 5 x64 build 2056 started (MetaQuotes Software Corp.) NG 0 17 : 19 : 04.403 Terminal Windows 7 Service Pack 1 (build 7601 ) x64, IE 11 , AMD FX- 4170 Quad-Core Processor , Memory: 9408 / 12255 Mb, Disk: 20 / 238 Gb, GMT+ 3 오늘 나는 기기 사양에서 최소 볼륨이 100이고 단계도 100이라는 것을 발견했습니다. 그러나 이러한 볼륨을 사용하면 수동으로 위치를 열지 않고 " 잘못된 볼륨 " 오류가 발생하며 0.01을 설정하면 버튼이 활성화되지 않은. 버전을 "어린"으로 변경 KK 0 17 : 35 : 14.046 Terminal MetaTrader 5 x64 build 2025 started (MetaQuotes Software Corp.) IE 0 17 : 35 : 14.046 Terminal Windows 7 Service Pack 1 (build 7601 ) x64, IE 11 , AMD FX- 4170 Quad-Core Processor , Memory: 9182 / 12255 Mb, Disk: 20 / 238 Gb, GMT+ 3 변경 사항 없음. 그런 다음 릴리스 버전으로 교체했습니다. FI 0 17 : 37 : 23.049 Terminal MetaTrader 5 x64 build 2007 started (MetaQuotes Software Corp.) RS 0 17 : 37 : 23.049 Terminal Windows 7 Service Pack 1 (build 7601 ) x64, IE 11 , AMD FX- 4170 Quad-Core Processor , Memory: 9180 / 12255 Mb, Disk: 20 / 238 Gb, GMT+ 3 그리고 여기 결과가 있습니다 왜 한 회사에서만 이런 일이 발생합니까? 결국 그것이 보편적이라면 문제는 오래전에 제기되고 해결되었을 것입니다. 해당 회사에 기술 지원을 어떤 방향으로 보내야 합니까? 추가됨: 그리고 빌드 2025가 같은 회사의 센트 계정에서 제대로 작동하는 것이 매우 이상합니다. 모든 도구 매개변수는 원래대로입니다. 센트로 거래하세요. 나는 그것을 스스로 추측했지만 ... 더 원합니다. Sergey Dzyublik 2019.05.22 19:05 #24693 Ilyas : 메시지 주셔서 감사합니다. 이것은 기초입니다. 수정하십시오. @Ilyas , NonPOD 구조체에도 비슷한 문제가 있습니다. struct NonPod{ uchar data[]; }; void OnStart (){ NonPod obj; obj = (NonPod)(obj); // '(' - invalid cast operation } Sergey Dzyublik 2019.05.22 21:00 #24694 클래스에 대한 네임스페이스 지원이 포함된 새 빌드를 기다리는 것 외에 이 제한을 해결하는 방법을 아는 사람이 있습니까? template < typename T> class TestTypedef{ public : typedef void (* callback)(T &); // 'callback' - identifier already used callback eq; }; void ff( int &) { Print ( __FUNCSIG__ );} void OnStart (){ TestTypedef< int > int_value; int_value.eq = ff; int x = 5 ; int_value.eq(x); // Ok TestTypedef<string> int_value; //Compile error 'callback' - identifier already used } typedef 기능 내 전역 이름 선언 범위의 문제 Sergey Dzyublik 2019.05.22 22:38 #24695 MT5(빌드 2057) typedef 내에서 동일한 함수 서명을 재사용할 때 컴파일 오류 : typedef void (* callback_0)(); // а без этой строки все ОК typedef void (* callback)(); void test_func(){} void OnStart (){ callback func_ptr = test_func; //'test_func' - type mismatch func_ptr(); } A100 2019.05.23 00:46 #24696 Sergey Dzyublik : MT5(빌드 2057) typedef 내에서 동일한 서명의 재사용에 대한 "금지"가 있는 버그: 그리고 2년 전에 본질적으로 유사한 스크립트 가 있으며 2056x32: EX5 로딩에 실패했습니다. A100 2019.05.23 01:01 #24697 Sergey Dzyublik : 클래스에 대한 네임스페이스 지원이 포함된 새 빌드를 기다리는 것 외에 이 제한을 해결하는 방법을 아는 사람이 있습니까? 엮다 void f( int &) {} void OnStart () { TestTypedef< int > int_value; TestTypedef< string > string_value; 그것은 가능하지만 (심지어 작동할 것입니다) 그 이상은 아닙니다. int_value.eq = f; } 그래서 나는 쓰지 않는다 Sergey Dzyublik 2019.05.23 01:17 #24698 A100 : 다음과 같이 쓰지 않도록 컴파일하십시오. 아니 아니, 여전히 어렵지만 작동합니다 ... typedef의 예에서 bool 유형 이 약간 손실되었습니다. #define PRINT(x) ; Print(#x, ":", string(x)) #define CREATE_TestTypedef(type) \ class TestTypedef_ ##type{ \ public : \ typedef bool (* callback_ ##type)(type &); \ callback_ ##type eq; \ } bool f( int &) { return true ;} void OnStart (){ CREATE_TestTypedef( int ) int_value; CREATE_TestTypedef( string ) string_value; int data = 5 ; int_value.eq = f; PRINT(int_value.eq(data)); // result: true } Sergey Dzyublik 2019.05.23 01:26 #24699 typedef 수정 및 네임스페이스 업데이트가 있는 경우 나올 때까지, 매크로를 통해 각 유형의 용도를 별도로 선언하고 다시 매크로를 통해 클래스 개체 를 생성하기 위해 이미 생성된 클래스의 이름을 가져와야 합니다... Igor Makanu 2019.05.23 05:51 #24700 CChartObjectLabel 을 생성할 때 다음 코드에서 초기화 해제 중에 표시기의 개체가 삭제되지 않는 이유를 설명합니다. //+------------------------------------------------------------------+ //| test.mq4 | //| Copyright 2018, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2018, MetaQuotes Software Corp." #property link "https://www.mql5.com/ru/users/igorm" #property version "1.00" #property strict #property indicator_separate_window #include <ChartObjects\ChartObjectsTxtControls.mqh> CChartObjectLabel *LabelUP,*LabelDN; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit () { CreateLabel(LabelUP, "LabelUP" , 0 ); CreateLabel(LabelDN, "LabelDN" , 30 ); /* LabelUP=new CChartObjectLabel; LabelDN=new CChartObjectLabel; LabelUP.Create(0,"LabelUP",ChartWindowFind(),0,0); LabelUP.Color(clrYellow); LabelUP.FontSize(14); LabelUP.Description("LabelUP"); LabelDN.Create(0,"LabelDN",ChartWindowFind(),0,10); LabelDN.Color(clrYellow); LabelDN.FontSize(14); LabelDN.Description("LabelDN"); */ //--- return ( INIT_SUCCEEDED ); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ void OnDeinit ( const int reason) { delete LabelUP; delete LabelDN; } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate ( const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { return (rates_total); } //+------------------------------------------------------------------+ void CreateLabel(CChartObjectLabel *l, string name, int y) { l= new CChartObjectLabel; l.Create( 0 ,name, ChartWindowFind (), 0 ,y); l.Color( clrYellow ); l.FontSize( 14 ); l.Description(name); } //+------------------------------------------------------------------+ TF를 전환할 때 로그 항목이 표시됩니다. 2019.05.23 09:49:02.044 tstlabel EURUSD,M30: CChartObjectLabel 유형의 객체 2개 남음 OnInit()에서 텍스트 레이블 생성( CCartObjectLabel )의 주석을 제거하면 모든 것이 올바르게 작동합니다. CreateLabel() 함수에 대한 포인터를 전달한 다음 어떤 이유로 OnDeinit()에서 삭제할 수 없습니다. Errors, bugs, questions MetaTrader 4 Build 529 전략 테스터. 1...246324642465246624672468246924702471247224732474247524762477...3184 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
그래서 몇초만에 되는게 아니라...
그리고 언어에 대한 설명에서 그것에 대해 무엇보다도 먼저보고해야합니다.
그리고 당신이 찾아야 할 기사에는 없습니다. 포럼은 마지막으로 찾아야 할 곳이어야 합니다.
그렇지 않으면 다음과 같이 나타납니다. 나는 책을 보지만 무화과를 봅니다 ...
왜 그럴 수 있습니까?
오늘 나는 기기 사양에서 최소 볼륨이 100이고 단계도 100이라는 것을 발견했습니다. 그러나 이러한 볼륨을 사용하면 수동으로 위치를 열지 않고 " 잘못된 볼륨 " 오류가 발생하며 0.01을 설정하면 버튼이 활성화되지 않은.
버전을 "어린"으로 변경
변경 사항 없음.
그런 다음 릴리스 버전으로 교체했습니다.
그리고 여기 결과가 있습니다
왜 한 회사에서만 이런 일이 발생합니까? 결국 그것이 보편적이라면 문제는 오래전에 제기되고 해결되었을 것입니다.
해당 회사에 기술 지원을 어떤 방향으로 보내야 합니까?
추가됨: 그리고 빌드 2025가 같은 회사의 센트 계정에서 제대로 작동하는 것이 매우 이상합니다. 모든 도구 매개변수는 원래대로입니다.
센트로 거래하세요. 나는 그것을 스스로 추측했지만 ... 더 원합니다.
메시지 주셔서 감사합니다.
이것은 기초입니다. 수정하십시오.
@Ilyas , NonPOD 구조체에도 비슷한 문제가 있습니다.
typedef 기능 내 전역 이름 선언 범위의 문제
typedef 내에서 동일한 함수 서명을 재사용할 때 컴파일 오류 :
MT5(빌드 2057)
typedef 내에서 동일한 서명의 재사용에 대한 "금지"가 있는 버그:
그리고 2년 전에 본질적으로 유사한 스크립트 가 있으며 2056x32: EX5 로딩에 실패했습니다.
클래스에 대한 네임스페이스 지원이 포함된 새 빌드를 기다리는 것 외에 이 제한을 해결하는 방법을 아는 사람이 있습니까?
엮다
그것은 가능하지만 (심지어 작동할 것입니다) 그 이상은 아닙니다.
그래서 나는 쓰지 않는다
다음과 같이 쓰지 않도록 컴파일하십시오.
아니 아니, 여전히 어렵지만 작동합니다 ...
typedef의 예에서 bool 유형 이 약간 손실되었습니다.
매크로를 통해 각 유형의 용도를 별도로 선언하고 다시 매크로를 통해 클래스 개체 를 생성하기 위해 이미 생성된 클래스의 이름을 가져와야 합니다...
CChartObjectLabel 을 생성할 때 다음 코드에서 초기화 해제 중에 표시기의 개체가 삭제되지 않는 이유를 설명합니다.
TF를 전환할 때 로그 항목이 표시됩니다. 2019.05.23 09:49:02.044 tstlabel EURUSD,M30: CChartObjectLabel 유형의 객체 2개 남음
OnInit()에서 텍스트 레이블 생성( CCartObjectLabel )의 주석을 제거하면 모든 것이 올바르게 작동합니다.
CreateLabel() 함수에 대한 포인터를 전달한 다음 어떤 이유로 OnDeinit()에서 삭제할 수 없습니다.