Erreurs, bugs, questions - page 1036

 
A100:
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.

 
MetaDriver:
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é de nombreuses options différentes, y compris celle-ci - le résultat ne change pas. Que statique - ne change pas - est normal, mais avec externe je ne comprends pas la situation
 
A100:
J'ai déjà essayé beaucoup d'options différentes, y compris celle-ci - le résultat ne change pas.
De plus, cette astuce n'est pas pour les bibliothèques, seulement pour les inluders.
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é.

 
A100:
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 ?
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 changer - assignez une valeur à une nouvelle variable et changez-la.
 
vlad_123:

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é.

Je crois qu'on vous l'a promis en septembre).
 
MetaDriver:

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 ?

Voulez-vous dire que si le fichier .dll est déchargé, toutes les données sont perdues ? J'ai essayé - mais je n'ai pas rencontré de perte de données - probablement d'une manière ou d'une autre le système comprend qu'il n'a pas besoin de décharger à un moment donné
 
zfs:
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)

 
A100:

L'exemple ci-dessus - quel est le problème ? (la question porte spécifiquement sur l'externalisation)

La variable est initialisée 2 fois, supprimez au moins cette erreur en premier et utilisez une nouvelle variable pour le calcul.
 
A100:
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.

https://www.mql5.com/ru/docs/basis/variables/externvariables

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.

Raison: