Qu'est-ce qui provoque une erreur de dépassement de pile dans mql4 ? Je soupçonne l'utilisation d'une fonction pour créer des objets. Vous trouverez ci-dessous la fonction qui a été appelée plus de cent fois pour créer des objets.
Voici un exemple d'utilisation
J'ai créé le même nombre d'objets de manière normale sans obtenir cette erreur, mais lorsque j'ai introduit et utilisé cette fonction pour créer les objets restants, l'erreur est apparue. Voyez l'exemple ci-dessous qui n'introduit pas l'erreur même s'il demande plus de travail pour le nombre d'objets.
Une dernière chose, les valeurs pour OBJPROP_XDISTANCE et OBJPROP_YDISTANCE sont supposées être int et non double.
Je n'ai jamais eu de débordement de pile, d'après ce que j'ai lu, ils sont souvent causés par la récursion, mais je ne vois pas cela dans le code que vous avez posté... pourquoi votre fonction est de type int? quel est l'intérêt de passer la variable double zoom si vous ne l'utilisez pas ?
Une dernière chose, les valeurs pour OBJPROP_XDISTANCE et OBJPROP_YDISTANCE sont supposées être int et non double.
C'est ce qui m'intrigue.
Je n'ai jamais eu de débordement de pile, d'après ce que j'ai lu, ils sont souvent causés par la récursion, mais je ne vois pas cela dans le code que vous avez posté ... pourquoi le type de votre fonction est int? quel est l'intérêt de passer la variable double zoom si vous ne l'utilisez pas ?
Une dernière chose, les valeurs de OBJPROP_XDISTANCE et OBJPROP_YDISTANCE sont censées être int et non double.
J'ai fait quelques recherches et remplacements et je dois encore corriger la partie inférieure de l'indicateur.
Je n'ai jamais eu de débordement de pile, d'après ce que j'ai lu, ils sont souvent causés par la récursion, mais je ne vois pas cela dans le code que vous avez posté ... pourquoi le type de votre fonction est int? quel est l'intérêt de passer la variable double zoom si vous ne l'utilisez pas ?
Une dernière chose, les valeurs pour OBJPROP_XDISTANCE et OBJPROP_YDISTANCE sont supposées être int et non double.
S'il vous plaît, lisez plus de livres sur ObjectSet(). Attends, laisse-moi t'aider. Voici un extrait de ce livre.
bool ObjectSet( string name, int index, double value)
Mec, s'il te plaît, lis plus de livres sur ObjectSet(). Attendez, laissez-moi vous aider. Voici un extrait.
Je vais voir votre devis et vous relancer avec ça...
OBJPROP_XDISTANCE | 102 | int | Valeur entière pour définir/obtenir la propriété de l'objet anchor X distance en pixels. |
OBJPROP_YDISTANCE | 103 | int | Valeur entière pour définir/obtenir la propriété de l'objet anchor Y distance en pixels. |
Vous utiliseriez un double pour cela ?
OBJPROP_BACK | 9 | bool | Valeur booléenne pour définir/obtenir l'indicateur de dessin en arrière-plan de l'objet. |
OBJPROP_RAY | 10 | bool | Valeur booléenne pour définir/obtenir l'indicateur de rayon de l'objet. |
OBJPROP_ELLIPSE | 11 | bool | Valeur booléenne pour définir/obtenir l'indicateur d'ellipse pour les arcs de fibro. |
tonny : Je me suis vraiment perdu dans ce que vous attendiez. Je n'ai jamais eu l'erreur "stack overflow" pendant la compilation non plus. Pourriez-vous nous donner des indications précises sur la façon dont nous devrions reproduire le problème ?
Je vais voir votre devis et je vous relance avec ça...
utiliseriez-vous un double pour cela ?
Dans ce que je fais, cela ne fait aucune différence, il y a plus que le peu que j'ai posté ici.
Si vous ne voulez pas poster tout le code, afin que l'erreur puisse être reproduite, veuillez coder quelque chose que vous pouvez poster en entier et qui reproduira la même erreur.
J'ai fait une expérience en remplaçant certains de ces objets par d'autres.
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
et utilisé le style de fonction comme ci-dessous et l'erreur a disparu. C'est comme si l'IDE pouvait accepter moins de ce qui précède que de ce qui suit. Je vais essayer de remplacer tous les styles ci-dessus par le style ci-dessous et voir si quelque chose d'autre peut apparaître.
ObCreate("EURUSD",Column1x,15,ZoomTimes);
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Qu'est-ce qui provoque une erreur de débordement de pile dans mql4 pendant la compilation ? Je soupçonne l'utilisation d'une fonction pour créer des objets. Voici la fonction qui a été appelée plus de cent fois pour créer des objets.
Voici un exemple d'utilisation
J'ai créé le même nombre d'objets de manière normale sans obtenir cette erreur, mais lorsque j'ai introduit et utilisé cette fonction pour créer les objets restants, l'erreur est apparue. Voyez l'exemple ci-dessous qui n'introduit pas l'erreur même s'il demande plus de travail pour le nombre d'objets.