Fehler, Irrtümer, Fragen - Seite 1327

 

Bei ## können Sie die 1. Ziffer nicht verwenden.

#define  MACRO( x, y )   x##y
void OnStart()
{
        int i = MACRO( 1, 5 );
        Print( i );
}
 

Sie können den Makroparameter in einer bestimmten Kombination nicht weglassen

#define  MACRO1( x )             void x() { Print( __FUNCTION__ ); }
#define  MACRO2( prefix, function )      MACRO1( prefix##function )
#define  MACRO3(         function )      MACRO2(         h2, function )
#define  MACRO4(         function )      MACRO2( /*опущен*/, function )
//---
   void f1() { Print( __FUNCTION__ ); }
MACRO3( f2 )          //нормально
 MACRO4( f2 )          //Ошибка: argument expected for the function-like macro
//---
void OnStart()
{
        MACRO( /*опущен*/, f1 ); //нормально
        h2f2();
        f2();                   
}
 
Karputov Vladimir:
Nein. Die Datei wurde gegenüber der Standardauslieferung nicht verändert und MQL5 Storage wurde nicht verwendet. Der Benutzer ist wahrscheinlich in einen anderen "Datenordner" gegangen - zumindest ist das die bisher praktikabelste Version.
Ich habe den Computer durchsucht. Die Datei ist nun doch tot (( Das verwendete Betriebssystem ist Windows Server 2012. Die Datei wurde im Ordner "C:\Benutzer\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\Scripts" (letztes Datum - März 2015) festgelegt. Ich weiß nicht, wie es dazu kam, dass sie mit einer Datei mit demselben Namen überschrieben wurde, aber aus dem Ordner "C:\Programme\MetaTrader 5\MQL5\Scripts" (letztes Änderungsdatum - August 2014). Die Quelldatei mit der Erweiterung mq5 wurde umgeschrieben, während die kompilierte Datei in der neuesten Version geblieben ist. Ich habeMQL5 Storage nicht verwendet, jetzt werde ich es tun.
 
kogriv:
Ich habe den Computer durchsucht. Die Datei ist nun doch tot (( Das verwendete Betriebssystem ist Windows Server 2012. Die Datei befand sich im Ordner "C:\Benutzer\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\Scripts" (letztes Datum - März 2015). Ich weiß nicht, wie es dazu kam, dass sie mit einer Datei mit demselben Namen überschrieben wurde, aber aus dem Ordner "C:\Programme\MetaTrader 5\MQL5\Scripts" (letztes Änderungsdatum - August 2014). Die Quelldatei mit der Erweiterung mq5 wurde umgeschrieben, die kompilierte Datei ist in der neuesten Version geblieben. Ich habeMQL5 Storage nicht verwendet, jetzt werde ich es tun.
Im Ordner C:\Programme\MetaTrader 5\MQL5\Scripts sollten Ihre (Benutzer-)Dateien nicht vorhanden sein! Wenn dort eine Datei auftaucht, ist das nur auf einen manuellen Eingriff in die Arbeit von MetaEditor zurückzuführen. Alle Arbeiten zur Bearbeitung und Erstellung von Dateien müssen im Datenordner C:\Benutzer\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\.... stattfinden.
 
Karputov Vladimir:
Im Ordner C:\Programme\MetaTrader 5\MQL5\Scripts sollten Ihre (Benutzer-)Dateien nicht existieren! Wenn eine Datei dort auftaucht, ist das nur auf einen manuellen Eingriff in die Arbeit von MetaEditor zurückzuführen. Alle Arbeiten zur Bearbeitung und Erstellung von Dateien sollten im Datenordner C:\Benutzer\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\.... abgelegt werden.
Ich habe es zuerst kopiert (C:\Programme\MetaTrader 5\MQL5\Scripts), weil ich die Besonderheiten des Dateispeichers auf dem Server nicht kannte, und dann habe ich es in den richtigen Ordner kopiert. Ich glaube nicht, dass es sich um eine "Beeinträchtigung der Arbeit..." handelt.
 
kogriv:
Warum nicht? Ich habe es zuerst dorthin kopiert (C:\Programme\MetaTrader 5\MQL5\Scripts), weil ich nicht wusste, wie die Dateien auf dem Server gespeichert werden, dann habe ich es herausgefunden und in den richtigen Ordner kopiert. Ich glaube nicht, dass es sich um eine "Manipulation..." handelt.
Genau - manueller Eingriff. Sie müssen alle Dateien von C:\Programme\MetaTrader 5\MQL5\... (ausschneiden und einfügen) an den richtigen Ort verschieben: C:\Benutzer\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\....
 
Karputov Vladimir:
Genau - manueller Eingriff. Alle Ihre Dateien aus C:\Programme\MetaTrader 5\MQL5\... sollten an ihren rechtmäßigen Platz verschoben werden (Ausschneiden und Einfügen): C:\Benutzer\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\....
Was wäre, wenn Sie es nicht herausgeschnitten hätten?
 
kogriv:
Was wäre, wenn du sie nicht rausschneiden, sondern reinstecken würdest...
In diesem Fall wird die Situation des Überschreibens erneut eintreten. Der Benutzer hat einen Datenordner - C:\Benutzer\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\.... Wenn Sie Dateien in andere Ordner schreiben wollen, tun Sie dies auf eigenes Risiko. Schließlich ist es Ihr Geld.
 
Karputov Vladimir:
In diesem Fall wird die Situation des Überschreibens erneut eintreten. Der Benutzer hat einen Datenordner - C:\Benutzer\Administrator\AppData\Roaming\MetaQuotes\Terminal\9A8888D580475F4165FB840CCD79A65C\MQL5\.... Wenn Sie Dateien in andere Ordner schreiben wollen, tun Sie dies auf eigenes Risiko. Schließlich ist es Ihr Geld.

Was ist mit der Taste /portable?

und übrigens, was sind diese Ordner "sdfgshndyueenerneb673756nr76,.t89.y80.tr76m5nbwb6qw6b3qvqvb6547nw8nme789m"? Wenn mehrere Terminals installiert sind, ist es nicht einfach, festzustellen, welcher Ordner zu welchem Terminal gehört. Natürlich kann man sie auch mit den MT-Tools eingeben, aber in allen anderen Fällen ist das sehr mühsam, daher ist /portable unsere Wahl.

 
Andrey Dik:

Was ist mit der Taste /portable?

und übrigens, was sind diese Ordner "sdfgshndyueenerneb673756nr76,.t89.y80.tr76m5nbwb6qw6b3qvqvb6547nw8nme789m"? Wenn mehrere Terminals installiert sind, ist es nicht einfach, festzustellen, welcher Ordner zu welchem Terminal gehört. Natürlich kann man sie auch mit den MT-Tools eingeben, aber in allen anderen Fällen ist das sehr mühsam, daher ist /portable unsere Wahl.

Der Benutzer hat schon einmal experimentiert und Dateien überschrieben bekommen. Ich denke, dass er sich beim zweiten Mal nicht verbrennen wird.