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

 

Saludos. ¿Me pueden decir cómo conectar un EA a una dll en C#?

Estoy creando una aplicación y una biblioteca

Desde la aplicación funciona

EA

#property strict

#import "C:\Users\Андрей\source\repos\ConsoleAppForMql\ClassLibraryForMql\bin\Debug\ClassLibraryForMql.dll"
void Method();
#import

int OnInit(){

Print("  до вызова Method()");
Method();


return(INIT_SUCCEEDED);}

void OnDeinit(const int reason){

}
void OnTick(){

}

Salidas

Supongo que no puede encontrar Method() ya que está dentro de la clase ClassForMql, pero no está claro cómo especificarlo.

 
Andrey Sokolov #:

Saludos. ¿Podría decirme cómo conectar un EA a una dll en C#?

Si se trata de MT4 entonces "mastica" el artículohttps://www.mql5.com/ru/articles/249

Le espera un fascinante viaje al mundo de las exportaciones incontroladas )))


Si se trata de MT5, empieza con un poco, primero conecta el código de prueba de Metacquothttps://www.mql5.com/ru/forum/285631

 
Igor Makanu #:

si se trata de MT4 entonces "mastica" el artículohttps://www.mql5.com/ru/articles/249

Le espera un fascinante viaje al mundo de las exportaciones no gestionadas )))


Si se trata de MT5, comience con algo pequeño, primero conecte el código de prueba de Metacquothttps://www.mql5.com/ru/forum/285631

Si es así, entonces 5. 4 también será necesario, pero más tarde.

 
Igor Makanu #:

Le espera un fascinante viaje al mundo de las exportaciones incontrolables ))))

Laverdad es que ha sido muy emocionante)))

 

con Console.ReadKey es particularmente agradable...

la consola todavía tiene que ser abierta porque no está en MT, está cerrada

 
Maxim Kuznetsov #:

con Console.ReadKey es particularmente agradable...

La consola todavía tiene que abrirse porque no está en MT, está cerrada

Esto es para probar desde la aplicación

 
Igor Makanu #:

si es MT5, comience con algo pequeño, primero conecte el código de prueba de Metacquothttps://www.mql5.com/ru/forum/285631

Si hace como en la ayuda

entonces
.

Señores, ¿pueden decirme cómo hacerlo?

¿O tal vez alguien tiene un ejemplo de cómo hacerlo?

 
Andrey Sokolov #:

Si haces como en la ayuda

entonces
.

Señores, ¿pueden decirme cómo hacer esto?

¿O tal vez alguien tiene un ejemplo de cómo hacerlo?

#importar"nombre_archivo"
...
#importar

Las descripciones de las funciones siguen directamente a la directiva #import "nombre del módulo".

Elnuevo comando #import completa el bloque de descripciones de funciones a importar.

 
Tretyakov Rostyslav #:

#importar"nombre_archivo"
...
#importar

Las descripciones de las funciones siguen inmediatamente después de la directiva #import "nombre del módulo".

El nuevo comando #import completa el bloque de descripciones de funciones a importar.

¿Alguien sabe por qué esto es así en la ayuda?

Gracias. Un error menos. ¿Algún consejo sobre el resto?


 
Andrey Sokolov #:

¿Alguien sabe por qué la ayuda es así?

Gracias. Una cosa menos de la que preocuparse. ¿Puede decirme el resto?


Andrey, tienes un enfoque muy extraño del estudio de la programación. Nunca he intentado trabajar con archivos .dll, pero mirando la documentación, me he dado cuenta de que

#import "имя_файла" 
    func1 define; 
    func2 define; 
    ... 
    funcN define; 
#import

¿Dónde está la declaración de la función en tu código?

Y luego en el ejemplo

#import "ExpertSample.dll" 
int    GetIntValue(int); 
double GetDoubleValue(double); 
string GetStringValue(string); 
double GetArrayItemValue(double &arr[],int,int); 
bool   SetArrayItemValue(double &arr[],int,int,double); 
double GetRatesItemValue(double &rates[][6],int,int,int); 
#import

las funciones que se supone que deben ser llamadas desde el código se enumeran...

¿Dónde están las funciones en su código?