Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 163

 
hoz:

Es gibt eine Bibliothek hoz_LoggingToAnywhere@Library.mq4, die von der Header-Datei hoz_Base@Include.mqh aufgerufen wird.

Beim Kompilieren der Bibliothek hoz_LoggingToAnywhere@Library.mq4 sehe ich dies im Protokoll:

Ich gehe dorthin... Und dort sehe ich:

Der Aufruf dieser fPrint-Funktion aus anderen Bibliotheken wird nirgends getadelt, aber aus der Header-Datei... schon. Warum ist das so? Es ist bereits Symbol für Symbol kopiert...


Da diese Funktion (...) als Parameter hat und Sie die genaue Zusammensetzung benötigen


Link:

https://docs.mql4.com/ru/basis/preprosessor/import

Da die importierten Funktionen außerhalb des zu kompilierenden Moduls liegen, kann der Compiler nicht prüfen, ob die übergebenen Parameter korrekt sind. Um Laufzeitfehler zu vermeiden, muss daher die genaue Zusammensetzung und Reihenfolge der an die importierten Funktionen übergebenen Parameter angegeben werden. Parameter, die an importierte Funktionen (sowohl von EX4- als auch von DLL-Modulen) übergeben werden, können keine Standardwerte haben.

 
ilunga:

Da diese Funktion als Parameter (...) hat und Sie die genaue Zusammensetzung benötigen


Hinweis:

https://docs.mql4.com/ru/basis/preprosessor/import

Da die importierten Funktionen außerhalb des zu kompilierenden Moduls liegen, kann der Compiler die Korrektheit der übergebenen Parameter nicht überprüfen. Um Laufzeitfehler zu vermeiden, muss daher die genaue Zusammensetzung und Reihenfolge der an die importierten Funktionen übergebenen Parameter angegeben werden. Parameter, die an importierte Funktionen (sowohl von EX4- als auch von DLL-Modulen) übergeben werden, können keine Standardwerte haben.


Also habe ich die Funktionen korrekt importiert, entsprechend:

#import "hoz_LoggingToAnywhere@Library.ex4"
    void fPrint (string& fs_Text);
#import
#import "hoz_HandlingWithErrorS.ex4"
    string fErrorToString(int fi_Error);
    string fErrorDescription (int fi_Error);
#import

Der Typ und die Parameter der Funktion sind vorhanden... Und so habe ich es auch schon benutzt:

fPrint (StringConcatenate ("fInitBase() => ", fErrorToString (bi_Err)));

In der Tat ist es hier offensichtlich, dass alles in der Klammer StringConcatenate vom Typ String ist, ich habe sie bereits beim Import deklariert.

//.......................................................................................................................................................................//

Wo liegt das Problem? Irgendetwas kommt dabei heraus, das völliger Unsinn ist. Ich habe sie in diese geändert:

string m = StringConcatenate ("fInitBase() => ", fErrorToString (bi_Err));
   fPrint (m);

Und es gibt keine Fehler mehr. Aber dieser Look gefällt mir nicht. Sie verlängert sich. Gibt es etwas Kürzeres?

 
hoz:


Wo ist das Problem?

Das liegt an Ihrer Herangehensweise. Genauer gesagt, in Ihrer mangelnden Bereitschaft, die technischen Unterlagen zu lesen. Immer die gleiche "Harke". Wenn Sie so freundlich wären, unabhängig Lesen Sie, wann Sie Parameter per Referenz übergeben können und wann nicht.

https://docs.mql4.com/ru/basis/variables/formal

Wenn es nicht klar ist, lernen Sie es einfach auswendig.

 
VladislavVG:

Das liegt an Ihrer Herangehensweise. Genauer gesagt, Ihre mangelnde Bereitschaft, die technischen Unterlagen zu lesen. Immer die gleiche "Harke". Wenn Sie so freundlich wären, unabhängig Lesen Sie, wann Sie Parameter per Referenz übergeben können und wann nicht.

https://docs.mql4.com/ru/basis/variables/formal

Wenn es nicht klar ist, lernen Sie es einfach auswendig.


In der Tat haben Sie irgendwo Recht. Aber es ist kein Unwillen zu verstehen, es ist nur ein wenig Zerstreutheit. Das ist es, woran ich arbeite. Die Frage ist erledigt. Vielen Dank für die Zurechtweisung! Ich werde es berücksichtigen.
 
hoz:

In der Tat haben Sie irgendwo Recht. Aber es ist kein Unwillen zu verstehen, es ist nur ein wenig Zerstreutheit. Das ist es, woran ich arbeite. Die Frage ist erledigt. Vielen Dank für die Zurechtweisung! Ich werde darüber nachdenken.
In die Ecke, auf die Erbsen!
 
artmedia70:
In die Ecke, auf die Erbsen!


 

Meine Herren, ich bitte um Rat, wie man die Registerkartenansicht in fxbook einrichtet (schließt). Ich danke Ihnen.


 
Das Problem wurde behoben.
 

Ich habe mql4 noch nicht ganz gemeistert, aber ich habe schon einige Fortschritte gemacht. Ich mag den Strategietester in mql5, meiner Meinung nach zeigt er ein tieferes Bild und nur wegen des Testers möchte ich EAs zu mql5 konvertieren.

Aber eine Sache fehlt im mql5 Forum, es gibt nicht viele Nachrichten, das Forum ist nicht sehr aktiv. Ist es möglich, in diesem Forum Fragen zu mql5 zu stellen?

 
Forexman77:

Ich habe mql4 noch nicht ganz gemeistert, aber ich habe schon einige Fortschritte gemacht. Ich mag den Strategie-Tester in mql5, er gibt mir einen tieferen Einblick in die Situation und nur wegen des Testers möchte ich meine EAs auf mql5 umstellen.

Das mql5 Forum hat nur ein paar Nachrichten, das Forum ist nicht sehr aktiv. Ist es möglich, in diesem Forum Fragen zu mql5 zu stellen?

Ich denke, MQL4 und MQL5 haben die Menschen in Händler und Programmierer unterteilt. Diejenigen, die MQL5 haben, können alle möglichen schönen Dinge herstellen und sie dann auf dem Markt verkaufen. Der gewöhnliche Händler braucht nur MQL4, ganz zu schweigen von denen, die von Hand handeln. Ich habe es selbst ausprobiert und sogar einen kleinen Einblick in das OOP bekommen. Probieren und lernen. Es wird sich für Sie auszahlen)).

Grund der Beschwerde: