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

 
Vladimir Pastushak :

모든 것이 한계 내에 있습니다 ...


칠면조가 파일에서 배열로 데이터를 읽을 때 비슷한 일이 한 번 발생했지만 지금은 기억이 나지 않습니다 ...

 

애플리케이션 생성, 대기 중

MQL5: 오류
원시, 시작: 2018.01.24 16:17, #1940209

터미널의 버전 및 비트 수

64 1755

문제에 대한 설명

표시기가 로드되지 않음

지표를 설정하고 지표가 작동하고 지표를 제거하면 지표가 제거되고 목록에 없지만 제거되지 않은 것처럼 작동하고 객체를 그립니다. 목록에 없습니다.

차트를 다시 열면 차트가 다른 악기의 차트인 경우에도 여전히 작동합니다.

이미 10분 동안 작동했으며 순환 주기가 없으며 모든 것이 표준의 통로에 있으며 코드가 첨부되어 있습니다...
 

컴파일 중 오류

 #define \
    MACRO
또한 줄 바꿈이 ALL 지시문에서 작동할 것으로 예상했습니다.
 
Vladimir Pastushak :

애플리케이션 생성, 대기 중

MQL5: 오류
원시, 시작: 2018.01.24 16:17, #1940209

터미널의 버전 및 비트 수

64 1755

문제에 대한 설명

표시기가 로드되지 않음

지표를 설정하고 지표가 작동하고 지표를 제거하면 지표가 제거되고 목록에 없지만 제거되지 않은 것처럼 작동하고 객체를 그립니다. 목록에 없습니다.

차트를 다시 열면 차트가 다른 악기의 차트인 경우에도 여전히 작동합니다.

이미 10분 동안 작동했으며 순환 주기가 없으며 모든 것이 표준의 통로에 있으며 코드가 첨부되어 있습니다...

같은 문제

 
Evgeny Belyaev :

같은 문제


재귀?

 
Evgeny Belyaev :

같은 문제


표시기 릴리스() ;

 

컴파일 중 오류

 int    TerminalInfoInteger ( 
    int   property_id       // идентификатор свойства 
   );

첨부파일을 컴파일 하셔야 합니다

그런 "틈"은 어디에서 얻었습니까? https://www.mql5.com/en/docs/check/terminalinfointeger 에 많은 것들이 있습니다. 마우스를 사용하여 Microsoft Edge에서 조각 복사

Документация по MQL5: Проверка состояния / TerminalInfoInteger
Документация по MQL5: Проверка состояния / TerminalInfoInteger
  • www.mql5.com
Проверка состояния / TerminalInfoInteger - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
파일:
Error157.mq5  1 kb
 

혼란스러운 매크로 강조 표시 - 컨텍스트에 의존하지 않음

 //вариант A
#ifdef   MACRO //1
#endif
#define MACRO //2
#ifdef   MACRO //3
#endif
#undef   MACRO //4
#ifdef   MACRO //5
#endif

항상 존재(옵션 B) 또는 항상 부재(옵션 A)

 //вариант B
#ifdef   MACRO //1
#endif
#define MACRO //2
#ifdef   MACRO //3
#endif
//#undef  MACRO //4
#ifdef   MACRO //5
#endif
특정 행에 매크로가 정의되어 있으면 강조 표시되고, 정의되어 있지 않으면 강조 표시되지 않습니다. 그렇지 않으면 백라이트의 유무가 무엇을 의미하는지 명확하지 않습니다.
 

MetaEditor에서 C\C++ 파일 강조 표시

https://www.mql5.com/ru/docs/basis/preprossor/constant

Макрос __MQL5__   доступен при компиляции файла *.mq5, при компиляции *.mq4 доступен макрос __MQL4__ .

확장자가 .c, cpp, .h인 파일을 강조 표시할 때 지정된 매크로(__MQL__ 포함)를 사용할 수 없을 것으로 예상되었습니다.

 //Test.h
#ifndef __MQL__
#define MACRO
#endif
 //Test.mq5
#include "Test.h"
#ifdef MACRO //не подсвечивается... нормально
#endif
 //Test.cpp
#include "Test.h"
#ifdef MACRO //не подсвечивается... но этот .cpp файл не предназначен для компиляции в MetaEditor,
             //а компилируется в С\С++, где макрос __MQL__ не является предопределенным
             //в результате подсвечивается то что не должно и наоборот не подсвечивается что должно
#endif

이것은 잘못된 백라이트, 오해의 소지가 있는 백라이트가 없는 것보다 훨씬 더 나쁜 경우입니다(이전의 경우와 같이).

Документация по MQL5: Основы языка / Препроцессор / Макроподстановка (#define)
Документация по MQL5: Основы языка / Препроцессор / Макроподстановка (#define)
  • www.mql5.com
Директива #define подставляет expression вместо всех последующих найденных вхождений identifier в исходном тексте. identifier заменяется только в том случае, если он представляет собой отдельный токен. identifier не заменяется, если он является частью комментария, частью строки, или частью другого более длинного идентификатора. expression...
 

저는 포럼에서 _WIN64와 유사한 MetaEditor의 미리 정의된 매크로 부족에 대한 사용자 토론을 반복적으로 만났습니다. 메타에디터는 범용 32-64비트 코드를 동시에 생성하기 때문에 관리가 필요없다는 답변이 나왔다.

동시에 많은 사람들이 구조 필드를 추가하여 https://www.mql5.com/ru/forum/225498/page2#comment_6401835 정렬을 사용합니다.

그리고 실제로 기성품 .dll(더 이상 변경할 수 없음)을 사용하는 경우 추가 정렬 없이는 할 수 없습니다. 그러나 x86 및 x64에서는 이 추가가 다르게 보일 수 있습니다. 이는 구조가 TerminalInfoInteger( TERMINAL_X64 )가 작동하지 않는 .mq5 파일의 컴파일 단계에서 설정되기 때문에 여전히 _WIN64의 유사체가 필요하다는 것을 의미합니다.

 //Test.mq5
#ifdef _WIN64
#define ALIGN (8-2) //добавить к элементу структуры 6 байт
#else
#define ALING (4-2) //добавить к элементу структуры 2 байта
#endif

이제 추가 정보를 염두에 두어야 합니다. 사소하게 절약한 결과 미묘한 오류가 발생할 위험이 있습니다.

Передача структуры в dll C++
Передача структуры в dll C++
  • 2018.01.26
  • www.mql5.com
Пишу dll, которая будет выполнять логику, и собственно возник вопрос. Можно ли передавать в dll структуру данных? Т.е...