Hatalar, hatalar, sorular - sayfa 2111

 
Vladimir Pastushak :

Her şey sınırlar içinde...


türkiye bir dosyadaki verileri bir diziye okuduğunda benzer bir şey oldu, ama şimdi hatırlamıyorum ...

 

Bir uygulama oluşturdu, bekliyor

MQL5: hata
Ham, Başladı: 2018.01.24 16:17, #1940209

Terminalin sürümü ve bitliği

64 1755

problemin tanımı

Gösterge yüklenmiyor

Göstergeyi ayarlıyorum, gösterge çalışıyor, göstergeyi kaldırıyorum, gösterge kaldırılıyor ve listede yok ama çalışıyor ve nesneleri kaldırılmamış gibi çiziyor, listede yok.

Bir tabloyu yeniden açarken, tablo başka bir enstrümana ait olsa bile çalışmaya devam eder.

10 dakikadır çalışıyor, döngüsel döngü yok, her şey norm koridorlarında, kod ekli ...
 

Derlerken hata

 #define \
    MACRO
ek olarak, satır kesmenin TÜM direktiflerde çalışması bekleniyordu.
 
Vladimir Pastushak :

Bir uygulama oluşturdu, bekliyor

MQL5: hata
Ham, Başladı: 2018.01.24 16:17, #1940209

Terminalin sürümü ve bitliği

64 1755

problemin tanımı

Gösterge yüklenmiyor

Göstergeyi ayarlıyorum, gösterge çalışıyor, göstergeyi kaldırıyorum, gösterge kaldırılıyor ve listede yok ama çalışıyor ve nesneleri kaldırılmamış gibi çiziyor, listede yok.

Bir tabloyu yeniden açarken, tablo başka bir enstrümana ait olsa bile çalışmaya devam eder.

10 dakikadır çalışıyor, döngüsel döngü yok, her şey norm koridorlarında, kod ekli ...

Aynı sorun

 
Evgeny Belyaev :

Aynı sorun


Özyineleme?

 
Evgeny Belyaev :

Aynı sorun


göstergeRelease() ;

 

Derlerken hata

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

Ekteki dosyayı derlemeniz gerekiyor

Böyle "boşlukları" nereden buldum? Burada birçoğu var https://www.mql5.com/ru/docs/check/terminalinfointeger . Fareyi kullanarak Microsoft Edge'de bir parçayı kopyaladı

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

Kafa karıştırıcı makro vurgulama - bağlama bağlı değildir

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

ya her zaman var (B seçeneği) ya da her zaman yok (A seçeneği)

 //вариант B
#ifdef   MACRO //1
#endif
#define MACRO //2
#ifdef   MACRO //3
#endif
//#undef  MACRO //4
#ifdef   MACRO //5
#endif
Belirli bir satırda bir makro tanımlanmışsa vurgulanması, tanımlanmamışsa vurgulanmaması bekleniyordu. Aksi takdirde, arka ışığın varlığının / yokluğunun ne anlama geldiği açık değildir.
 

MetaEditor'da C\C++ dosyalarını vurgulama

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

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

.c, cpp, .h uzantılı dosyalar vurgulanırken belirtilen makroların (ve __MQL__) kullanılamaması bekleniyordu.

 //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

Bu, (önceki gibi) yanlış arka ışığın yanıltıcı, yokluğundan çok daha kötü olduğu bir durumdur.

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

Forumda defalarca MetaEditor'da _WIN64'e benzer önceden tanımlanmış bir makronun eksikliği hakkında bir tartışmayla karşılaştım. Yönetimin cevabı, MetaEditor aynı anda evrensel bir 32-64-bit kod ürettiği için buna gerek olmadığıydı.

Aynı zamanda, birçok kişi yapı alanları ekleyerek https://www.mql5.com/ru/forum/225498/page2#comment_6401835 hizalamasını kullanır.

Ve gerçekten de, hazır bir .dll kullanıyorsanız (artık değiştirilemez), o zaman ek hizalama olmadan yapamazsınız. Ancak x86 ve x64'te bu ekleme farklı görünebilir, bu da yapı, TerminalInfoInteger( TERMINAL_X64 )'in çalışmadığı .mq5 dosyasının derleme aşamasında ayarlandığından, _WIN64'ün bir analoğuna hala ihtiyaç olduğu anlamına gelir.

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

Şimdi ekstra bilgileri aklınızda tutmanız gerekiyor. Önemsiz şeylerden tasarruf etmenin bir sonucu olarak, ince bir hata alma riski vardır.

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