Fehler, Irrtümer, Fragen - Seite 2639
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ist der Schlüssel für den portablen Modus zufällig erforderlich?
Werden alle Terminals manuell gestartet?
Von Hand, ja, das tun sie alle. Letztendlich habe ich sie auf diese Weise manuell gestartet.
Die Taste für den portablen Modus ändert in dieser Hinsicht nichts.
Das Problem ist, dass MT4 ein Autorisierungsfenster ausgibt und der Programmstart nicht als abgeschlossen betrachtet wird.
Sie müssen "start" in der Batch-Datei verwenden.
Alles in allem stelle ich fest, dass ich die Sache gut im Griff habe.
Vielen Dank für Ihre Teilnahme!
Wenn Sie immer noch nicht verstehen, worum es hier geht, lesen Sie wahrscheinlich meine Beiträge nicht aufmerksam. Mein Appell richtet sich an die Entwickler, nicht an Sie. Ich brauche Ihre billigen Ratschläge nicht.
Beruhigen Sie sich und machen Sie sich nicht so viele Sorgen.
Einmal mehr bin ich davon überzeugt, dass Menschen mit einer geringen Gehirnentwicklung in der Regel wenig Verständnis für Höflichkeit haben.
Sie können nicht einmal verstehen, was man Ihnen sagt, und Sie sind so unhöflich wie ein Kindergartenkind, das noch nicht einmal gelernt hat, richtig zu schreiben.
Es ist jedoch die Arbeit an den Projekten, die es Ihnen ermöglicht, die Fähigkeiten der Sprache zu bewerten und ihre Mängel und Bugs zu entdecken...
Früher wurden bei der Arbeit an MQL-Projekten die Informationen über Fehler (Bugs) in der Reihenfolge ihrer Entdeckung bereitgestellt.
Jetzt haben wir beschlossen, einen neuen Ansatz zu versuchen - wir arbeiten uns bis zu einem blockierenden Fehler vor und stellen dann Informationen über alle gefundenen Fehler zur Verfügung.
Sie erstellen mehrmals ein komplexes umhülltes Objekt mit dem internen Typ "C", aber es stellt sich heraus, dass es ein ganz anderer Datentyp ist, vielleicht "B", "int", was auch immer Sie wollen...
Ich habe viel Zeit und Mühe investiert, um herauszufinden und zu verstehen, dass das Problem nicht im Code, sondern im MQL-Compiler liegt. (C++ online:https://onlinegdb.com/H1R1fR5ML)
Vermutlich liegt das Problem in der Arbeit des Zwischenspeichers der Template-Klasse "main_wrapper" während der Codegenerierung zur Kompilierungszeit, wenn die interne Klasse "internal_wrapper" aus der Template-Klasse "A" als Parameter für verschiedene Datentypen (int, B*, B, C) übergeben wird.
Welcher erste Datentyp von der Template-Klasse "main_wrapper<A<TEMPLATE_TYPE>::internal_wrapper> erzeugt wird, dieser Datentyp wird in Zukunft in allen Objekten des Templates weiterverwendet werden.
Ein weiterer Fehler bei der Generierung des Codes der Vorlagenklasse wird weiter unten beschrieben.
Ein weiterer MT5(build 2316) Fehler bei der Generierung von Template-Klassencode bei Verwendung einer internen Klasse.
C++ online:https://onlinegdb.com/HJkKXAqMU
Ein weiterer Fehler inMT5 (Build 2316), der mit derinternen Klasse zusammenhängt, ist die fehlende Möglichkeit, explizit auf den globalen Namespace zu verweisen.
C++ online:https://onlinegdb.com/H14NF05G8
Ein sehr unangenehmer Fehler, der die weitere Entwicklung blockiert.
Sie erstellen mehrmals ein komplexes umhülltes Objekt mit dem internen Typ "C", aber es stellt sich heraus, dass es ein ganz anderer Datentyp ist, vielleicht "B", "int", was auch immer Sie wollen...
Es hat mich viel Zeit und Mühe gekostet, herauszufinden und zu verstehen, dass das Problem nicht im Code, sondern im MQL-Compiler liegt. (C++ online:https://onlinegdb.com/H1R1fR5ML)
Vermutlich liegt das Problem in der Arbeit des Zwischenspeichers der Template-Klasse "main_wrapper" während der Codegenerierung zur Kompilierungszeit, wenn die interne Klasse "internal_wrapper" aus der Template-Klasse "A" als Parameter für verschiedene Datentypen (int, B*, B, C) übergeben wird.
Welcher erste Datentyp von der Template-Klasse "main_wrapper<A<TEMPLATE_TYPE>::internal_wrapper> erzeugt wird, dieser Datentyp wird in Zukunft in allen Objekten des Templates weiterverwendet werden.
Ein weiterer Fehler bei der Generierung des Codes der Vorlagenklasse wird weiter unten beschrieben.
Ist das der richtige Weg?
Danke, in der Tat umgeht die Einführung eines Dummy-Parameters für die Vorlage im Fall des Beispiels das Problem.
Bei dem globalen Projekt ist es jedoch etwas komplizierter:Die interne Klasse wurde als Alternative zur fehlenden typedef typename-Funktionalität verwendet, um sowohl den Entwicklungsprozess als auch die Anwendung der endgültigen Containerklasse zu vereinfachen.
Es könnte sich lohnen, auf eine Korrektur durch die Entwickler zu warten.
Als letztes Mittel müssen alle Abhängigkeiten nach außen gezogen werden, in der Hoffnung, dass keine weitere erfolgreiche Kompilierung mit undefiniertem Verhalten zur Laufzeit erfolgt.
Um die internen Funktionen der Klasse zusammenzufassen,
können wir eindeutig sagen, dass es an der Funktionalität der Typdeklaration fehlt, zumindest an ihrer primitiven Form, um sie richtig zu nutzen...
Anstelle von kompaktem und klarem C++-Code:
Wir müssen einen Zaun mit #define und Vererbung durch die interne Klasse bauen:
Probleme bei der Verwendung einer internen Klasse als typedef-Deklaration:Und hier gibt es viel mehr Probleme, als es auf den ersten Blick scheinen mag.
Probleme treten auf, wenn #define als typedef-Deklaration verwendet wird:
Die Entwickler haben zu diesem Zweck "operator= delete" hinzugefügt.
Es erscheint jedoch nicht logisch, die Verknüpfung "Löschen/Standard" zu unterbrechen, weil dann alles wieder manuell geschrieben werden muss.
Vielleicht mache ich etwas falsch?