Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 642

 
Alexey Viktorov:

El problema es entender qué es un archivo de inclusión y qué es una biblioteca.

El compilador "arrebata" las partes utilizadas del archivo .mqh y compila un ejecutable que funcionará en ausencia del archivo .mqh.

La biblioteca debe estar presente en todos los ordenadores que vayan a utilizar un programa que haga referencia a la biblioteca. Esto es muy incómodo y poca gente lo utiliza, no los conozco.

Recomiendo olvidarse de las librerías y entender los archivos incluidos.

Bueno, ¡puedes discutir sobre quién está más cómodo usando qué!
 
Alexey Viktorov:

El problema es entender qué es un archivo de inclusión y qué es una biblioteca.

El compilador "arrebata" las partes utilizadas del archivo .mqh y compila un ejecutable que funcionará en ausencia del archivo .mqh.

La biblioteca debe estar presente en todos los ordenadores que vayan a utilizar un programa que haga referencia a la biblioteca. Esto es muy incómodo y poca gente lo utiliza, no sé.

Te recomiendo que te olvides de las bibliotecas y te ocupes de los archivos de inclusión.

Esto es exactamente de lo que estamos hablando.

He proporcionado archivos para este fin.

No es una DLL, es un archivo .MQ4(.EX4) donde se almacenan las funciones más utilizadas.

El problema es que estas funciones en el cuerpo de la EA funcionan sin problemas,

pero cuando los transfiere a un archivo conectado a través de INCLUDE, obtiene el error descrito anteriormente.

No veo ninguna razón para ello.

 
Sergey Maksiutenko:

Eso es exactamente de lo que estamos hablando.

He proporcionado archivos para este fin.

No se trata de una DLL, sino de un archivo .MQ4(.EX4) donde se almacenan las funciones más utilizadas.

El problema es que estas funciones en el cuerpo de la EA funcionan sin problemas,

pero cuando los transfiere a un archivo conectado a través de INCLUDE, obtiene el error descrito anteriormente.

No veo ninguna razón para ello.

Lo siento, ¿estás bromeando?

//+------------------------------------------------------------------+
//|                                                      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
//+------------------------------------------------------------------+

He resaltado la línea a propósito, ¿qué te dice? !!!!

 
Vitaly Gorbunov:

Lo siento, ¿estás bromeando?

He resaltado la línea a propósito, ¿qué te dice? !!!!

#property strict 

Ordenar al compilador que aplique un modo especial de comprobación estricta de errores

 
Sergey Maksiutenko:

Ordenar al compilador que aplique un régimen especial de comprobación estricta de errores

¿Qué implica esto?

 
Sergey Maksiutenko:

Ordenar al compilador que aplique un modo especial de comprobación estricta de errores

Arriba he dado el enlace directohttps://docs.mql4.com/ru/mql4changes buscar para la exportación

¡¡¡¡Si no sabes cómo utilizar la búsqueda, así es como se encuentra!!!!

¡¡¡¡!!!!

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

¡¡¡Lo mismo digo!!!

#property library
//+++++++++++++++++++++
#property strict
//+++++++++++++++++++++
//=========================
int calc (int a,int b)
{
int c = a + b;
return(c);
}
¿Ahora ves dónde está tu error?
 
Vitaly Gorbunov:

¡¡¡Lo mismo digo!!!

¿Ahora ves dónde está tu error?

Por desgracia, no lo entiendo...

Por favor, dime...

 
Sergey Maksiutenko:

Por desgracia, no lo entiendo...

Por favor, dígame.

Si te refieres a la propiedad dela biblioteca#property

Lo tengo comprobado...

Sin ella, el archivo de la biblioteca ni siquiera se compila
 

Voy a fumar para no escribir con demasiada dureza e intentar explicaros lo que es la #propiedadestricta.