Fehler, Irrtümer, Fragen - Seite 1662

 
fxsaber:

Warum die Warnung vor einer flachen Stelle?

Es gibt keine Überladung dieser Funktion mit uchar. Es gibt nur Saibling. Deshalb wird darauf hingewiesen, dass die Konstante größer als 127 ist.
 
Sergei Vladimirov:
Es gibt keine Überladung dieser Funktion mit uchar. Es gibt nur Saibling. Aus diesem Grund wird eine Warnung ausgegeben, wenn die Konstante größer als 127 ist.
Warum tritt dieser Fehler überhaupt nicht auf? Weil es keine Überladung für uchar-Arrays gibt (wenn die Referenz wahr ist).
 
Alexey Viktorov:

Wenn es Werte anzeigt, die der Wahrheit ähnlich sind, aber mit den falschen Daten zählt, stellt sich heraus, dass das Problem in mql5 und nicht im Tester oder Visualizer liegt.

Im Allgemeinen danke ich Ihnen für Ihre Teilnahme, ich werde das Problem langfristig bekämpfen. Und ich werde heute einen anderen, ähnlichen Abschnitt der Währung überprüfen. Vielleicht ist es das Zeckenproblem an diesem Ort, hhz?

Ich habe es überprüft. Alles ist in Ordnung. Offenbar gibt es an einer bestimmten Stelle in der Geschichte einen Fehler bei der Erzeugung von Zecken.
 
fxsaber:
Warum gibt es dann überhaupt keinen Fehler? Es gibt keine Überladung für uchar-Arrays (wenn die Hilfe korrekt ist).
Dies ist eine berechtigte Frage.
 
fxsaber:
Warum gibt es dann überhaupt keinen Fehler? Weil es keine Überladung für uchar-Arrays gibt (wenn die Hilfe korrekt ist).
Offensichtlich, weil die Arrays identisch sind. Der Unterschied zwischen char und uchar liegt nur in der Interpretation durch den Compiler. Eigentlich sollte es dort auch keine Warnung geben, denn es wird ja nichts abgeschnitten, das können Sie überprüfen.
 
Alexey Navoykov:
Offensichtlich, weil die Arrays identisch sind. Der Unterschied zwischen char und uchar liegt nur in der Compiler-Interpretation. Eigentlich sollte es dort keine Warnung geben, denn es wird ja nichts abgeschnitten, da kann man sich vergewissern.
Dort wird er Byte für Byte kopiert. Also bei allen signierten <-> unsignierten.
 
A100:

Aber dies (und die vorherigen mit typedef) sind zufällige Fehler - ich habe den Hauptfehler noch nicht gefunden, weil es im Quellprogramm (wie in diesem Beispiel) kein typedef mit der gleichen Signatur gibt.

Ich konnte ein Testskript in der Nähe des Quellprogramms erstellen, das bei der Ausführung einen Fehler aufweist

//Script1.mq5
typedef int (*GTW)( uint, uint, int );
#import "Script2.ex5"
        void f( GTW );
#import "Script3.ex5"
        int g( uint, uint, int );
#import
void OnStart() { f( g ); }
//Script2.mq5
#property library
typedef int (*GTW)( uint, uint, int );
void f( GTW ff ) export { ff( 0x1, 0x1, 0 ); }
//Script3.mq5
#property library
int g( uint, uint, int ) export
{
        Print( __FUNCSIG__ );
        return 0;
}

Ergebnis: Ungültiger Funktionszeigeraufruf in 'Script2.mq5

Und jetzt der Trick... - Ersetzen Sie GTW in allen Dateien durch GT und überprüfen Sie das Ergebnis!

 

Bitte geben Sie Hinweise zur Syntax, wie man eine Funktion wie die folgende korrekt umschreibt

MqlTick Func()
{
  MqlTick Tick = {0};
  
  return(Tick);
}

zu etwas wie

MqlTick Func()
{
  return(MqlTick(0));
}

oder etwas in dieser Art

MqlTick Func()
{
  return(new MqlTick);
}

D.h. schreiben Sie keinen separaten Teil, der die zurückzugebende Struktur erstellt.

 

In letzter Zeit (seit etwa einem Monat) in Diskussionen über "Arbeit" Service-Projekte, nach dem Tippen eine Scheiße viel Text mit Zitaten und Illustrationen, nach dem Einreichen geht alles in ... Loch #403


Nein, das erneute Absenden des Formulars hilft nicht - nach dem erneuten Laden der Seite muss ich alles erneut eingeben

Sehr geehrte Redaktion, können Sie bitte erklären, welche neue Revolution zum Nutzen der Nutzer erfunden wurde und wie man ihr entkommen kann?
 
Alexander Puzanov:

Seit vor kurzem (vor etwa einem Monat) in Diskussionen über "Work"-Dienstleistungsprojekte, nachdem ich einen Haufen Text mit Zitaten und Illustrationen getippt habe, geht nach dem Einreichen alles in ... Loch #403


Nein, das erneute Absenden des Formulars hilft nicht - nach dem erneuten Laden der Seite muss ich alles erneut eingeben

Sehr geehrte Redaktion, können Sie bitte erklären, welche neue Revolution zum Nutzen der Nutzer erfunden wurde und wie man ihr entkommen kann?
Drücken Sie in der oberen linken Ecke des Editors IMMER die Schaltfläche HTML, dann STRG+A und STRG+C, bevor Sie einen großen Beitrag senden. Auf diese Weise bleibt alles im Puffer. Und wenn ein Fehler auftritt. Sie müssen erneut die HTML-Schaltfläche und dann STRG+A und STRG+V verwenden. Das erspart eine Menge Stress.
Grund der Beschwerde: