Fehler, Irrtümer, Fragen - Seite 1118

 
Zeleniy:
Ich habe es herausgefunden, ich hatte die Installationsdatei über einen Monat lang, jetzt habe ich eine neue heruntergeladen und es funktioniert, ich dachte nicht, dass sich die Installationsdatei ändert, weil sie danach die richtigen Dateien herunterlädt.
Ganz im Gegenteil... wenn der alte die Tabelle nicht anzeigte, warum sollte er sie dann anzeigen... Das ist seltsam...
 
micle:
Im Gegenteil... die alte, wenn sie das Kennzeichen nicht anzeigte, warum sollte sie es dann anzeigen... Das ist seltsam...
Ich weiß es nicht, aber das neue System verhielt sich wie üblich ohne Tabletten und begann mit dem Herunterladen der Installationsdateien.
 
Zeleniy:
Ich weiß es nicht, aber das neue System verhielt sich wie üblich und begann mit dem Herunterladen von Installationsdateien.
Mystik...
 
Zeleniy:
Ich weiß es nicht, aber der neue hat sich wie gewohnt verhalten, ohne irgendwelche Tabs und hat angefangen, Installationsdateien herunterzuladen.

Ich habe schon einmal gesehen, dass das Erscheinen eines solchen Fensters während des Installationsprozesses mit dem Schutz des Computers zusammenhängen könnte (anscheinend aufgrund eines regelmäßigen Updates) und die anschließende merkwürdige Erscheinung wie diese.

Dabei spielte es keine Rolle, ob es sich um eine frühere oder eine gerade heruntergeladene Installationsdatei handelte.

Jetzt notiere ich mir für die Zukunft, nur für den Fall, dass diese neue Abhängigkeit für mich (ich experimentiere jetzt nicht).

Aber ich bin froh, dass Ihr Problem gelöst ist.

Als Anregung: Soweit ich mich erinnere, gab es vor kurzem ein Update für das MT5-Terminal. Vielleicht gibt es in diesem Fall einen Zusammenhang zwischen der Proxy-Eingabeaufforderung, einer veralteten Version der Installationsdatei und dem Online-Installationsprozess.
 

Aus der Liste der Änderungen im neuen MT5-Build vom 2014.04.04 10:14:"3. Terminal: Eswurde ein Fehlerbehoben, der dazu führte, dass grafische Objekte unter bestimmten Bedingungen nicht auf dem Chart gezeichnet werden konnten. "Ich weiß nicht, ob die Entwickler meiner Bitte in SD #966979 nachgekommen sind, oder ob dies eine andere Art von Korrektur ist, oder sogar ein Nebeneffekt einer Verbesserung im nächsten Build, aber so oder so bin ich jetzt damit zufrieden. In der Änderungsliste steht, dass es sich um einen Fehler handelt, aber in der Korrespondenz mit dem SD wurde mir unmissverständlich gesagt: "Es ist kein Fehler, sondern eine Einschränkung, um Ressourcen zu sparen."

Sie können jetzt bequem TA-Builds auf jeder TF wie bisher beobachten.

Vielen Dank, ich schließe die Bewerbung.

 

Methodenkonstanz kann in einer abgeleiteten Klasse außer Kraft gesetzt werden (Build 917)

class A {
public:
        virtual void f() const {}
        int x;
};
class B : public A {
public:
        virtual void f() /*не const*/ { x = 2; }
};
void g( const A* a ) { a.f(); }
void OnStart()
{
        A *a = new B();
        a.x = 1;
	Print( a.x ); //результат = 1
        g( a );
        Print( a.x ); //результат = 2, а обещали, что g( const A* ) не может менять объект
        delete( a );
}

Ein weiteres Beispiel

class A {
public:
        virtual void f() const { Print( "1" ); }
};
class B : public A {
public:
        virtual void f()       { Print( "2" ); }
};
void g( const A* a ) { a.f(); }
void OnStart()
{
        A *a = new B();
        g( a );
        delete( a );
}

Ergebnis= 2, aber in C++ Ergebnis = 1

Der Fehler liegt nicht darin, dass man in einer abgeleiteten Klasse keine Methode mit demselben Namen wie in der Basisklasse deklarieren darf (was zulässig ist), sondern darin, dass C++ sie als unterschiedlich betrachtet und MQL der Meinung ist, dass B::f() A::f() const überschreibt

 

Die Funktion Print() gibt Float-Signal-Nicht-Zahlen als Nicht-Signale aus, was unlogisch ist, da Double beide normalerweise ausgibt.

Float muss entweder: 1) das Präfix Q von den Nicht-Signalnummern entfernen und dann werden Signal- und Nicht-Signalnummern identisch gedruckt, oder 2) Signalnummern mit Präfix S ausgeben. Wenn ich falsch liege, geben Sie mir bitte ein Beispiel für eine Signal-Float-Nicht-Zahl, die von der Print()-Funktion ohne Präfix Q gedruckt werden würde

Ich nehme zum Beispiel ein Signal double non-number, konvertiere es in float und gebe beides über Print() aus. Im ersten Fall wird SNAN gedruckt, im zweiten Fall QNAN

 

Beim Herumprobieren mit den Möglichkeiten, Daten vom Tester in die Datei zu schreiben, ist mir ein Fehler aufgefallen (gekürzt, weil er nicht passte):

2014.04.08 01:47:30.531 2013.07.01 02:10:00   00: 0x000000013FD1F038
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1F04D 498 BCD            mov        rcx, r13
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1F04A 41 B001            mov        r8b, 0x1
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1F043 80 BD3804000000    cmp        byte [rbp+0x438], 0x0
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1F040 83 C202            add        edx, 0x2
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1F03D 418 BD4            mov        edx, r12d
2014.04.08 01:47:30.531 2013.07.01 02:10:00   
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1F03B EB03              jmp        0x13fd1f040
2014.04.08 01:47:30.531 2013.07.01 02:10:00      crash -->  000000013 FD1F038 8 B50FC            mov        edx, [rax-0x4]
2014.04.08 01:47:30.531 2013.07.01 02:10:00   
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1F033 4885 C0            test       rax, rax
[cut]
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1EE6E 55                push       rbp
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1EE67 4 C894018          mov        [rax+0x18], r8
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1EE63 48895808          mov        [rax+0x8], rbx
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1EE60 488 BC4            mov        rax, rsp
2014.04.08 01:47:30.531 2013.07.01 02:10:00   Access violation at 0x000000013FD1F038 read to 0x00000003FFFFFFFF

Das heißt, natürlich, ich verstehe, dass dieser Fehler ein natürliches Ergebnis meiner Ungeschicklichkeit ist. Und auf jeden Fall war es schnell behoben (das Problem lag in dem Versuch, Daten, die keine Zeichenketten sind, über eine dritte Funktion an FileWrite zu übergeben, falls erforderlich - ich kann das genauer beschreiben). Aber der Fehler sieht nicht sehr klar und ein wenig erschreckend :) und der Compiler nicht darauf hinweisen, dass es irgendwo erwartet wird. Vielleicht sollten wir zumindest eine Art von Warping oder so etwas hinzufügen...

 
Lone_Irbis:

Beim Herumstochern in den Möglichkeiten, Daten vom Tester in die Datei zu schreiben, ist folgender Fehler aufgetreten (gekürzt, weil er nicht passte):

Das heißt, natürlich, ich verstehe, dass dieser Fehler ein natürliches Ergebnis meiner Ungeschicklichkeit ist. Und auf jeden Fall war es schnell behoben (das Problem lag in dem Versuch, Daten, die keine Zeichenketten sind, über eine dritte Funktion an FileWrite zu übergeben, falls erforderlich - ich kann das genauer beschreiben). Aber der Fehler sieht nicht sehr klar und ein wenig erschreckend :) und der Compiler nicht darauf hinweisen, dass es irgendwo erwartet wird. Vielleicht sollten wir zumindest eine Art von Warping oder so etwas hinzufügen...

Ja, bitte beschreiben Sie es genauer.

Interessiert an Build, OS, Bitrate, Testereinstellungen. Bitte fügen Sie den Code zur Reproduktion bei.

Ich danke Ihnen.

 

OK, ich werde es versuchen. Ich konnte es auf den richtigen Zeitpunkt zurücksetzen und reproduzieren, aber ich kann den Fehler nicht isolieren und separat reproduzieren...

Build: MetaTester 5 x64 build 910 (07 Mar 2014) https://dl.dropboxusercontent.com/u/61587787/bugreport/build.png

Win7 x64 Schreibtisch https://dl.dropboxusercontent.com/u/61587787/bugreport/system.png

kopiert vom Testerfenster: https://dl.dropboxusercontent.com/u/61587787/bugreport/log.txt

Screenshots des Testers (man weiß ja nie):https://dl.dropboxusercontent.com/u/61587787/bugreport/tester1.pnghttps://dl.dropboxusercontent.com/u/61587787/bugreport/tester2.png

Testereinstellungen (ich weiß nicht, ob ich weiß, was ich meine):https://dl.dropboxusercontent.com/u/61587787/bugreport/config.png

Code-Schnipsel:

   int idx = 133;
   WriteCSV("test.csv",idx);
   
class Core { 
public:  
   void     WriteCSV(string FileName, string s1, string s2, string s3, string s4, string s5, string s6);
};

void Core::WriteCSV(string FileName, string s1, string s2="", string s3="", string s4="", string s5="", string s6=""){
   int handle = FileOpen(FileName,FILE_CSV|FILE_WRITE|FILE_SHARE_WRITE|FILE_UNICODE|FILE_COMMON,"~");
   if(handle == INVALID_HANDLE) Print("error");
   else FileWrite(handle,s1,s2,s3,s4,s5,s6);
   FileClose(handle);
}

Ersetzen durchWriteCSV("test.csv",(string)idx); - der Fehler verschwindet. Andere Variablen, die keine Zeichenketten sind, haben hier keine Bedeutung. Es scheint jedoch keinen Unterschied zu machen, was idx bedeutet (es ist nur die Seriennummer der Nachrichten im Array). Wird bei allen Nachrichten wiedergegeben, wenn man versucht, das Ergebnis zu speichern. Von den Warnungen wird nur dieimplizite Konvertierung von "Zahl" in "String" angezeigt, aber auch hier führt sie nur in diesem Fall zu einem Absturz.

Ich möchte hier nicht den kompletten Code und das .set dazu posten, aber ich werde es vielleicht irgendwo hinschicken.