Was verursacht einen Stapelüberlauffehler in mql4? Ich vermute, dass eine Funktion zum Erstellen von Objekten verwendet wird. Unten ist die Funktion, die über hundert Mal aufgerufen wurde, um Objekte zu erstellen.
Unten ist ein Beispiel für die Verwendung
Ich habe andere gleiche Anzahl von Objekten die normale Art und Weise erstellt, ohne diesen Fehler zu bekommen, aber wenn ich eingeführt und verwendet diese Funktion, um die restlichen Objekte zu erstellen ist, wenn der Fehler aufgetaucht. Siehe das Beispiel unten, die nicht den Fehler einführen, obwohl seine arbeitsintensiver für die Anzahl der Objekte.
Und noch etwas, die Werte für OBJPROP_XDISTANCE und OBJPROP_YDISTANCE sollten int sein, nicht double.
Ich hatte noch nie einen Stapelüberlauf, nach dem, was ich gelesen habe, werden sie oft durch Rekursion verursacht, aber das sehe ich in dem Code, den du gepostet hast, nicht... warum ist deine Funktion vom Typ int? was bringt es, die Variable double zoom zu übergeben, wenn du sie nicht verwendest ?
Und noch etwas, die Werte für OBJPROP_XDISTANCE und OBJPROP_YDISTANCE sollten int sein, nicht double.
Das ist es, was mich verwirrt.
Ich hatte noch nie einen Stapelüberlauf, nach dem, was ich gelesen habe, werden sie oft durch Rekursion verursacht, aber das sehe ich in dem Code, den Sie gepostet haben, nicht ... warum ist der Typ Ihrer Funktion int? was bringt es, die Variable double zoom zu übergeben, wenn man sie nicht benutzt?
Und noch etwas, die Werte für OBJPROP_XDISTANCE und OBJPROP_YDISTANCE sollten int sein, nicht double.
Ich habe einige finden und ersetzen und im noch zu korrigieren, den unteren Teil des Indikators.
Ich hatte noch nie einen Stapelüberlauf, nach dem, was ich gelesen habe, werden sie oft durch Rekursion verursacht, aber das sehe ich in dem Code, den Sie gepostet haben, nicht ... warum ist der Typ Ihrer Funktion int? welchen Sinn hat es, die Variable double zoom zu übergeben, wenn Sie sie nicht benutzen ?
Und noch etwas, die Werte für OBJPROP_XDISTANCE und OBJPROP_YDISTANCE sollten int sein, nicht double.
Mann bitte lesen Sie mehr Buch über ObjectSet(). Warten Sie, ich helfe Ihnen. Unten ist ein Auszug.
bool ObjectSet( string name, int index, double value)
Mann lesen Sie bitte mehr Buch über ObjectSet(). Warten Sie, ich helfe Ihnen. Unten ist ein Auszug.
Ich sehe dein Zitat und erhöhe mit diesem.
OBJPROP_XDISTANCE | 102 | int | Ganzzahliger Wert zum Setzen/Lesen der Objekteigenschaft "Anker-X-Abstand" in Pixeln. |
OBJPROP_YDISTANCE | 103 | int | Ganzzahliger Wert zum Festlegen/Abrufen der Objekteigenschaft "Anker-Y-Abstand" in Pixeln. |
Würden Sie für diese Werte einen Double-Wert verwenden?
OBJPROP_BACK | 9 | bool | Boolescher Wert zum Setzen/Abfragen des Hintergrundzeichnungsflags für das Objekt. |
OBJPROP_RAY | 10 | bool | Boolescher Wert zum Setzen/Abrufen des Strahlenflags für das Objekt. |
OBJPROP_ELLIPSE | 11 | bool | Boolescher Wert zum Setzen/Abfragen des Ellipsen-Flags für Fibrobögen. |
tonny: Ich habe wirklich nicht verstanden, was Sie erwartet haben. Ich habe auch nie den "Stack Overflow"-Fehler während der Kompilierung erhalten. Könnten Sie uns genaue Richtlinien geben, wie wir das Problem reproduzieren sollten?
Ich sehe dein Zitat und erhöhe damit...
Würden Sie dafür ein Double verwenden?
Bei dem, was ich tue, macht es keinen Unterschied, es ist mehr als das Wenige, was ich hier gepostet habe.
Wenn Sie nicht den gesamten Code posten wollen, damit der Fehler reproduziert werden kann, codieren Sie bitte etwas, das Sie vollständig posten können und das denselben Fehler reproduziert.
Ich habe ein Experiment gemacht und einige Objekte dieser Art ersetzt
ObjectCreate("EURUSD", OBJ_LABEL, 0, 0, 0); // Creating obj. ObjectSet("EURUSD", OBJPROP_CORNER, 0); // Reference corner ObjectSet("EURUSD", OBJPROP_XDISTANCE, Column1x*ZoomTimes);// X coordinate ObjectSet("EURUSD", OBJPROP_YDISTANCE, ZoomTimes*15);// Y coordinate
und verwendete den Funktionsstil wie unten und der Fehler verschwand. Seine wie die IDE kann weniger der oben als der unten nehmen. Ill versuchen, alle der oben genannten Stil mit dem unten Stil zu ersetzen und sehen, ob etwas anderes auftauchen könnte.
ObCreate("EURUSD",Column1x,15,ZoomTimes);
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Was verursacht einen Stapelüberlauffehler in mql4 beim Kompilieren? Ich vermute, dass eine Funktion zum Erstellen von Objekten verwendet wird. Unten ist die Funktion, die über hundert Mal aufgerufen wurde, um Objekte zu erstellen.
Unten ist ein Beispiel für die Verwendung
Ich habe andere gleiche Anzahl von Objekten die normale Art und Weise erstellt, ohne diesen Fehler zu bekommen, aber wenn ich eingeführt und verwendet diese Funktion, um die restlichen Objekte zu erstellen ist, wenn der Fehler aufgetaucht. Siehe das Beispiel unten, die nicht den Fehler einführen, obwohl seine arbeitsintensiver für die Anzahl der Objekte.