Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 642

 
Alexey Viktorov:

Le problème est de comprendre ce qu'est un fichier include et ce qu'est une bibliothèque.

Le compilateur "arrache" les parties utilisées du fichier .mqh et compile un exécutable qui fonctionnera en l'absence du fichier .mqh.

La bibliothèque doit être présente sur tous les ordinateurs qui utiliseront un programme faisant référence à la bibliothèque. C'est très gênant et peu de gens l'utilisent, je ne les connais pas.

Je recommande d'oublier les bibliothèques et de comprendre les fichiers inclus.

Eh bien, vous pouvez discuter de qui est plus à l'aise en utilisant quoi !
 
Alexey Viktorov:

Le problème est de comprendre ce qu'est un fichier include et ce qu'est une bibliothèque.

Le compilateur "arrache" les parties utilisées du fichier .mqh et compile un exécutable qui fonctionnera en l'absence du fichier .mqh.

La bibliothèque doit être présente sur tous les ordinateurs qui utiliseront un programme faisant référence à la bibliothèque. C'est très peu pratique et peu de gens l'utilisent, je ne sais pas.

Je vous recommande d'oublier les bibliothèques et de vous occuper des fichiers include.

C'est exactement ce dont nous parlons.

J'ai fourni des fichiers à cette fin.

Il ne s'agit pas d'une DLL, mais d'un fichier .MQ4(.EX4) dans lequel sont stockées les fonctions fréquemment utilisées.

Le problème est que ces fonctions dans le corps de l'EA fonctionnent sans aucun problème,

mais lorsque vous les transférez vers un fichier connecté par INCLUDE, vous obtenez l'erreur décrite ci-dessus.

Je ne vois aucune raison à cela.

 
Sergey Maksiutenko:

C'est exactement ce dont nous parlons.

J'ai fourni des fichiers à cette fin.

Il ne s'agit pas d'une DLL, mais d'un fichier .MQ4(.EX4) dans lequel sont stockées les fonctions fréquemment utilisées.

Le problème est que ces fonctions dans le corps de l'EA fonctionnent sans aucun problème,

mais lorsque vous les transférez vers un fichier connecté par INCLUDE, vous obtenez l'erreur décrite ci-dessus.

Je ne vois aucune raison à cela.

Je suis désolé, tu te moques de moi ?

//+------------------------------------------------------------------+
//|                                                      my func.mqh |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"


//+++++++++++++++++++++++++++
#property strict 
//+++++++++++++++++++++++++++
#import "my_func.ex4"
int calc (int a,int b);
#import 

//+------------------------------------------------------------------+
//| defines                                                          |
//+------------------------------------------------------------------+
// #define MacrosHello   "Hello, world!"
// #define MacrosYear    2010
//+------------------------------------------------------------------+
//| DLL imports                                                      |
//+------------------------------------------------------------------+
// #import "user32.dll"
//   int      SendMessageA(int hWnd,int Msg,int wParam,int lParam);
// #import "my_expert.dll"
//   int      ExpertRecalculate(int wParam,int lParam);
// #import
//+------------------------------------------------------------------+
//| EX5 imports                                                      |
//+------------------------------------------------------------------+
// #import "stdlib.ex5"
//   string ErrorDescription(int error_code);
// #import
//+------------------------------------------------------------------+

J'ai souligné la ligne exprès, qu'est-ce que ça vous dit ? ! !!!

 
Vitaly Gorbunov:

Je suis désolé, tu te moques de moi ?

J'ai souligné la ligne exprès, qu'est-ce que ça vous dit ? ! !!!

#property strict 

Demander au compilateur d'appliquer un mode spécial de contrôle strict des erreurs.

 
Sergey Maksiutenko:

Demander au compilateur d'appliquer un régime spécial de contrôle strict des erreurs

Qu'est-ce que cela implique ?

 
Sergey Maksiutenko:

Demander au compilateur d'appliquer un mode spécial de vérification stricte des erreurs.

Ci-dessus j'ai donné le lien directhttps://docs.mql4.com/ru/mql4changes recherche d'exportation

Si vous ne savez pas comment utiliser la recherche, voici comment vous pouvez trouver !!!!.

! !!!

Обновленный MQL4 - Справочник MQL4
Обновленный MQL4 - Справочник MQL4
  • docs.mql4.com
Начиная с билда 600 язык программирования MQL4 полностью переработан и достиг уровня MQL5 - теперь писать торговых роботов на MQL4/MQL5 можно в единой среде разработке MetaEditor и используя единые стиль, библиотеки и инструменты отладки. MQL4 пользуется заслуженной популярностью среди разработчиков автоматических торговых систем благодаря...
 

Même chose ici ! !!

#property library
//+++++++++++++++++++++
#property strict
//+++++++++++++++++++++
//=========================
int calc (int a,int b)
{
int c = a + b;
return(c);
}
Vous voyez maintenant où se situe votre erreur ?
 
Vitaly Gorbunov:

Même chose ici ! !!

Vous voyez maintenant où se situe votre erreur ?

Hélas, je ne comprends pas...

S'il te plaît, dis-moi...

 
Sergey Maksiutenko:

Hélas, je ne comprends pas...

S'il vous plaît, dites-moi.

Si vous voulez dire la propriété de labibliothèque#property

Je l'ai fait vérifier...

Sans elle, le fichier de la bibliothèque ne compile même pas.
 

Je vais fumer pour ne pas écrire trop sévèrement et essayer de vous expliquer ce qu'est la #propriété stricte.

Raison: