Fehler, Irrtümer, Fragen - Seite 1204

 

Nichts wird gedruckt

string g( string str = __FUNCTION__ ) { return ( str ); }
void OnStart()
{
        Print( g() );
}

Warum nicht?

 
marketeer:
Im Allgemeinen hat die weitere Untersuchung zu diesen Ergebnissen geführt. Wenn Sie den Mauszeiger über die Ticker in der Marktübersicht bewegen, erscheint der Tooltip, in dem Trade: No. Aber für die russischen CFD, die in schwarzer Farbe angezeigt werden, wird Trade: Close angezeigt (noch einmal sollte beachtet werden, dass die Zeit des Handels und die Ticks des Symbols in diesem Moment kommen). Daraus schließe ich, dass der Broker mehrere Stufen des verbotenen Handels hat, von denen nur einige (oder sogar nur eine) grau markiert sind, und alle anderen in einem gemeinsamen Stapel mit aktiven Symbolen aufgehäuft sind, da sie in schwarz angezeigt werden.

Nur schließen in der Geschäftsart bedeutet, dass nur das Schließen bestehender Positionen erlaubt ist. Sie wird daher in aktivem Schwarz dargestellt.

Die Betriebsmodi werden auf dem Handelsserver eingerichtet.

 
Renat:

Nur schließen in der Geschäftsart bedeutet, dass nur das Schließen bestehender Positionen erlaubt ist. Aus diesem Grund wird sie in schwarzer Farbe aktiv dargestellt.

Die Betriebsarten werden auf dem Handelsserver eingerichtet.

Es heißt nicht "nur schließen", sondern "schließen". Handelt es sich dabei um einen Irrtum oder bleiben andere Nuancen unklar?
 
marketeer:
Es heißt nicht "nur schließen", sondern "schließen". Handelt es sich dabei um einen Fehler oder gibt es noch andere Nuancen, die unklar bleiben?
Schließen bedeutet hier nur Schließen. Es ist nur kurz geschrieben.
 
class object_line : public CObject
{
public:
   static color line_color_befor;
};
static extern color object_line::line_color_befor = clrGreen;

void OnChartEvent(const int id,                            
                  const long& lparam,   
                  const double& dparam, 
                  const string& sparam){
   if (id == CHARTEVENT_OBJECT_CREATE)   
      Alert(object_line::line_color_befor);   
} 

1. Zusammengestellt von

2. Wenn ein Objekt erstellt wird, ist die Meldung clrBlack.

3. Geprüft am 4. 670er Build

 
A100:

Nichts wird gedruckt

Warum nicht?

Vielen Dank für die Nachricht.
Sie können die Makros __FUNCTION__ und __FUNCSIG__ nicht außerhalb eines Funktionskörpers verwenden.

Neuer Kompilierungsfehler hinzugefügt : 377 "Makro kann nicht außerhalb eines Funktionskörpers erscheinen".
 
ALXIMIKS:

1. Zusammengestellt von

2. Wenn ein Objekt erstellt wird, ist die Meldung clrBlack.

3. Geprüft am 4. 670er Build

Vielen Dank für die Nachricht. Fehler im Compiler behoben, Ihr Code wird mit Fehler kompiliert:
'line_color_befor' - redefinition; different type modifiers
Verwenden Sie den folgenden Code, um diesen Fehler zu umgehen:
#include <object.mqh>

class object_line : public CObject
{
public:
   static color line_color_befor;
};

color input line_color_param=clrGreen;//object_line::line_color_befor

static color object_line::line_color_befor = line_color_param;

void OnChartEvent(const int id,                            
                  const long& lparam,   
                  const double& dparam, 
                  const string& sparam){
   if (id == CHARTEVENT_OBJECT_CREATE)   
      Alert(object_line::line_color_befor);   
} 
 
A100:

Fehler bei der Ausführung: Falsches Casting von Zeigern (Build 977, aber das passierte auch schon vorher ab und zu)

Wenn Sie etwas verschieben (z.B. Deklarationen vertauschen #import) oder 2 Dateien anstelle von 3 machen oder h()-Aufrufe entfernen - dann treten statt der angegebenen Fehler andere Fehler auf

Wenn Sie den obigen Code umstellen, wird er am Ende R::y statt L::y aufrufen

In einer komplexeren Version werden einige gängige Funktionen aus Modulen vor (!) statischen Konstruktoren selbst aufgerufen (so wie im obigen Beispiel f() vor X::X aufgerufen wird, das wiederum korrekt vor OnStart aufgerufen wird). Ich werde versuchen, ein Beispiel anzuführen, aber es gibt riesige Dateien. Aber manchmal funktioniert es richtig, so dass der Fehler nicht bei mir liegt, weil die Reihenfolge der Objekterzeugung durch den Compiler selbst definiert ist und ich sie nicht ändern kann

Danke für den Beitrag Es gibt ein Problem, das derzeit untersucht wird.

UPD: Behoben.
 
mql5:
Danke für den Beitrag Es gibt ein Problem, wir lösen es gerade.

UPD: Behoben.

Ich habe dort einen Fehler gemacht https://www.mql5.com/ru/forum/1111/page1221#comment_1070267, ich habe nicht angegeben, dass Funktionen virtuell sind - wenn jetzt R und L so deklariert werden:

class R { public:
        virtual void y( A* a ) const { PF       ((B *)a).g( 1 ); }
};
class L : public R { public:
        virtual void y( A* a )       { PF       ((B *)a).g( 2 ); }
};
dann wird L::y aufgerufen und R::y sollte aufgerufen werden, weil sie unterschiedlich sind - (unterschiedlich durch const und der Zeiger war auf R)
 

Alle Makler-Terminals funktionieren nicht mehr, auch das, das ich von dieser Website heruntergeladen habe...

Neustart hilft nicht, Neustart und Neuinstallation auch nicht, alles funktionierte vorher einwandfrei, ich habe nichts auf meinem Computer installiert, ich habe auch nichts auf dem Terminal installiert. nur Einkaufen im Markt.