Fehler, Irrtümer, Fragen - Seite 1422

 

Mihail Matkovskij, 2015.11.01 12:55

Ich kann das Terminal nicht auf Build 902 aktualisieren, früher ging es, aber jetzt kann ich es seit 3 Tagen nicht mehr tun. Version: 4; Build: 890; Bitrate: 32. Was könnte der Grund dafür sein?

Was genau funktioniert nicht? Was machen Sie und was bekommen Sie? Welche Art von Fehlern?
 

Fehler bei der Ausführung

class A { public:
        virtual bool    g() { Print( __FUNCTION__ ); return true; }
        virtual bool    f() { return g(); }
};
class B : public A { public:
        virtual bool    g() { Print( __FUNCTION__ ); return true; }
};
void OnStart()
{
        int i = 0;
        for ( B b; b.f(); i++ )
                if ( i++ >= 3 )
                        break;
}                

Ergebnis: und sollte lauten:

 
Karputov Vladimir:
Was genau funktioniert nicht? Was machen Sie und was bekommen Sie? Was sind die Fehler?

Da das Protokoll vertraulich ist, übermittle ich es Ihnen in einer privaten Nachricht.

 
A100:

Speicherleck.


A100, du bist ein richtiger Wanzenfänger!!! Machen Sie weiter so! Ich ziehe den Hut vor Ihnen :)

 
Stanislav Korotky:
Dies ist MT4. Ich habe es in den letzten Tagen ausprobiert. Build 902/32.

Ich habe Ihr Beispiel auf MT4/891/32 mit verschiedenen Compilern ausprobiert (Build: 1174, 1210)

Entweder Upgrade... oder zurückdrehen.

 
sigma7i:

A100, du bist ein richtiger Wanzenfänger!!! Machen Sie weiter so! Ich ziehe den Hut vor Ihnen :)

Man kann also sofort sehen, wer die OOP-Fähigkeiten tatsächlich nutzt und wer ein Meister der Argumentation zu diesem Thema ist (es gibt einen ganzen Zweig von Meistern).

Forum zum Thema Handel, automatische Handelssysteme und Testen von Handelsstrategien

AOP um Himmels willen....

George Merts, 2015.10.26 19:58

Du weißt nur nicht, wie man es zubereitet.

OOP ist sehr vorteilhaft sowohl für die Strukturierung von Programmen als auch für die Fähigkeit, sie zu unterstützen und zu ändern.

Vor allem, da Sie sagen, dass Sie "Klassen als Container für Funktionen verwenden" - nun, legen Sie die Daten, die mit diesen Funktionen arbeiten, in diesen Container - und das ist es, OOP in Aktion.


 
A100:

Die einzige Möglichkeit, diesen Fehler zu beheben, ist, Optimize=1 in metaeditor.ini durch 0 zu ersetzen

Ich muss es nicht unbedingt loswerden, aber vielleicht die Entwickler. Schließlich sollten solche Fehler bei der Kompilierung gar nicht erst auftreten, wenn der Compiler gut arbeitet. Deshalb habe ich Ihnen ein genaues Code-Beispiel gegeben, wenn es auftritt.
 
Ilya Malev:
Deshalb habe ich das genaue Codebeispiel angegeben, wenn es erscheint.
Bei Build 1210/32 kann sie nicht wiederholt werden.
Oder?
void OnStart()
{
        ENUM_TIMEFRAMES tf=NULL;
        if(tf==NULL)   tf=Period();
}
 
A100:

Ich habe Ihr Beispiel auf MT4/891/32 mit verschiedenen Compilern ausprobiert (Build: 1174, 1210)

Entweder Upgrade... oder zurückdrehen.

Nein. Service Desk sagt immer "Upgrade auf den neuesten Build". (was natürlich richtig sein sollte, wenn sie nur Fehler beheben würden). Ich habe das Problem bei Build 900 entdeckt und dann auf 902 aktualisiert. Offenbar ist das Problem durch das Hinzufügen von Klassenvorlagen entstanden. Die Vorlagen werden zwar eine Zeit lang "tanzen", aber ich denke, es ist besser, sie überhaupt nicht zu verwenden.

 
A100:
Bei Build 1210\32 gibt es keine Wiederholung.
Oder?
Grund der Beschwerde: