Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 163

 
hoz:

Il existe une bibliothèque hoz_LoggingToAnywhere@Library.mq4, qui est appelée à partir du fichier d'en-tête hoz_Base@Include.mqh.

Lorsque je compile la bibliothèque hoz_LoggingToAnywhere@Library.mq4, je vois ce message dans le journal :

J'y vais... Et là, je vois :

L'appel de cette fonction fPrint à partir d'autres bibliothèques n'est blâmé nulle part, mais à partir du fichier d'en-tête... il l'est. Pourquoi en est-il ainsi ? C'est déjà copié de symbole à symbole...


Parce que cette fonction a (...) comme paramètre, et que vous avez besoin de la composition exacte


lien :

https://docs.mql4.com/ru/basis/preprosessor/import

Comme les fonctions importées sont en dehors du module en cours de compilation, le compilateur ne peut pas vérifier si les paramètres passés sont corrects. Par conséquent, afin d'éviter les erreurs d'exécution, la composition et l'ordre exacts des paramètres transmis aux fonctions importées doivent être spécifiés. Les paramètres passés aux fonctions importées (à la fois des modules EX4 et DLL) ne peuvent pas avoir de valeurs par défaut.

 
ilunga:

Parce que cette fonction a (...) comme paramètres et vous avez besoin de la composition exacte


référence :

https://docs.mql4.com/ru/basis/preprosessor/import

Comme les fonctions importées sont en dehors du module en cours de compilation, le compilateur ne peut pas vérifier l'exactitude des paramètres passés. Par conséquent, afin d'éviter les erreurs d'exécution, la composition et l'ordre exacts des paramètres transmis aux fonctions importées doivent être spécifiés. Les paramètres passés aux fonctions importées (à la fois des modules EX4 et DLL) ne peuvent pas avoir de valeurs par défaut.


J'ai donc importé les fonctions correctement, selon :

#import "hoz_LoggingToAnywhere@Library.ex4"
    void fPrint (string& fs_Text);
#import
#import "hoz_HandlingWithErrorS.ex4"
    string fErrorToString(int fi_Error);
    string fErrorDescription (int fi_Error);
#import

Le type de fonction et les paramètres sont là... Et je l'ai déjà utilisé de cette façon :

fPrint (StringConcatenate ("fInitBase() => ", fErrorToString (bi_Err)));

En fait ici il est évident que tout dans les parenthèses StringConcatenate est de type string, je les ai déjà déclarés lors de l'importation.

//.......................................................................................................................................................................//

Où est le problème ? Il en ressort quelque chose de complètement absurde. Je l'ai changé en ceci :

string m = StringConcatenate ("fInitBase() => ", fErrorToString (bi_Err));
   fPrint (m);

Et il n'y a plus d'erreurs. Mais je n'aime pas ce look. Il s'allonge. Quelque chose de plus court ?

 
hoz:


Où est le problème ?

C'est dans votre approche. Pour être plus précis - dans votre manque de volonté de lire la documentation technique. Toujours le même "râteau". Si vous aviez l'amabilité de le faire, indépendamment Lisez quand vous pouvez passer des paramètres par référence et quand vous ne le pouvez pas.

https://docs.mql4.com/ru/basis/variables/formal

Si ce n'est pas clair, mémorisez-le.

 
VladislavVG:

C'est dans votre approche. Plus précisément, votre manque de volonté de lire la documentation technique. Toujours le même "râteau". Si vous aviez l'amabilité de le faire, indépendamment Lisez quand vous pouvez passer des paramètres par référence et quand vous ne le pouvez pas.

https://docs.mql4.com/ru/basis/variables/formal

Si ce n'est pas clair, mémorisez-le.


En fait, vous avez raison quelque part. Mais ce n'est pas un manque de volonté de comprendre, c'est juste un peu d'étourderie. C'est ce sur quoi je travaille. L'affaire est réglée. Merci beaucoup pour la réprimande ! Je vais en tenir compte.
 
hoz:

En fait, vous avez raison quelque part. Mais ce n'est pas un manque de volonté de comprendre, c'est juste un peu d'étourderie. C'est ce sur quoi je travaille. L'affaire est réglée. Merci beaucoup pour la réprimande ! Je vais y réfléchir.
Dans le coin, sur les petits pois !
 
artmedia70:
Dans le coin, sur les petits pois !


 

Messieurs, conseillez-nous sur la façon de configurer (fermer) la vue des onglets sur fxbook. Merci.


 
Le problème a été résolu.
 

Je n'ai pas encore tout à fait maîtrisé mql4, mais j'ai déjà fait quelques progrès. J'aime le testeur de stratégie dans mql5, à mon avis, il montre une image plus profonde et seulement à cause du testeur je veux convertir les EAs à mql5.

Mais il manque une chose sur le forum mql5, il n'y a pas beaucoup de messages, le forum n'est pas très actif. Est-il possible de poser des questions sur mql5 sur ce forum ?

 
Forexman77:

Je n'ai pas encore tout à fait maîtrisé mql4, mais j'ai déjà fait quelques progrès. J'aime le testeur de stratégie dans mql5, il me donne une vue plus profonde de la situation et seulement à cause du testeur je voudrais changer mes EAs à mql5.

Le forum mql5 ne compte que quelques messages, le forum n'est pas très actif. Est-il possible de poser des questions sur mql5 sur ce forum ?

Je pense que MQL4 et MQL5 ont divisé les gens entre les traders et les programmeurs. Les MQL5 peuvent fabriquer toutes sortes de jolies choses et les vendre ensuite sur le Marché. Le commerçant ordinaire n'a besoin que de MQL4, sans parler de ceux qui font du commerce à la main. Je l'ai essayé moi-même, et j'ai même eu un petit aperçu de l'OOP. Essayez et apprenez. Cela vous rapportera gros)).