Erreurs, bugs, questions - page 1036
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Si vous ne pouvez pas changer la valeur, alors il s'agit d'une constante. Et si c'est le cas - alors pourquoi le changement de valeur n'est pas reflété dans un autre module ?
Vous l'avez externalisé partout. Supprimez le modificateur dans l'un des modules. Il doit être réellement alloué quelque part.
Vous l'avez externalisé partout. Supprimez le modificateur dans l'un des modules. Il doit être vraiment distribué quelque part.
J'ai déjà essayé beaucoup d'options différentes, y compris celle-ci - le résultat ne change pas.
Toutes les bibliothèques de mql sont dynamiques. Avez-vous déjà essayé de déclarer des variables dans une DLL, puis de les utiliser dans le programme principal ? Essayez, ainsi vous vous sentirez moins offensé par mql.
Pouvez-vous me dire quand la prochaine version du terminal sera disponible ?
Il devrait y avoir une solution pour un problème que j'ai rencontré.
Si vous ne pouvez pas changer la valeur, alors c'est une constante. Et si vous le pouvez, pourquoi le changement de valeur ne se reflète-t-il pas dans un autre module ?
Pouvez-vous me dire quand la prochaine version du terminal sera disponible ?
Il devrait y avoir une solution pour un problème que j'ai rencontré.
Toutes les bibliothèques de mql sont dynamiques, avez-vous essayé de déclarer des variables dans une DLL et de les utiliser ensuite dans le programme principal ?
Extern est une variable externe, une pour toute la portée, pas comme dans 4. L'entrée ne change pas maintenant. Si vous voulez la modifier, attribuez une valeur à une nouvelle variable et modifiez-la.
Exemple ci-dessus - quel est le problème ? (la question porte sur l'externalité dans MQL5)
L'exemple ci-dessus - quel est le problème ? (la question porte spécifiquement sur l'externalisation)
Voulez-vous dire que si le fichier .dll est déchargé, toutes les données sont également perdues ? J'ai essayé - mais je n'ai pas rencontré de perte de données - probablement que le système comprend qu'il n'est pas nécessaire de décharger à un moment donné.
Je veux dire que les variables externes sont liées au moment de la compilation.
DLL (et mql-library) ne sont pas compilés avec le programme principal, donc ne peuvent pas être liés. défaut de Stringo, en principe, il devrait y avoir une erreur au moment de la compilation. Elle existe, c'est évident.
Variables externes
Lemot clé extern est utilisé pour déclarer des identificateurs de variables comme identificateurs d' une classe de mémoire statique avec une durée de vie globale. De telles variables existent dès l'exécution du programme et la mémoire est allouée et initialisée pour elles immédiatement après le début de l'exécution du programme.
Vous pouvez créer des programmes composés de plusieurs fichiers sources, pour cela la directive #include du préprocesseur est utilisée. Les variables déclarées comme extern avec le même type et identifiant peuvent exister dans différents fichiers sources du même projet.
Lorsque l'ensemble du projet estcompilé , toutes les variables externes ayant le même type et le même identifiant sont associées à la même zone du pool de mémoire des variables globales. Les variables Extern sont utiles pour la compilation séparée des fichiers sources. Les variables externes peuvent être initialisées, mais une seule fois - l'existence de plusieurs variables externes initialisées du même type et avec le même identifiant est inacceptable.