¿Cómo codificar? - página 205

 

¿Ayuda con una simple llamada DLL?

Así que todo lo que quiero hacer es obtener el Acc# de MT4 de una dll.

Dll_call pide a Dll_call_include el doble"GetAccountNumber()" de Dll_call.dll

simple ¿verdad? el ea carga bien incluso con el Acc# incorrecto en el dll. Mt4 pide usar la dll.

los 3 archivos están en las 3 carpetas correctas, la dll es un archivo .dll (adjunto como .txt para ver el código.

¿podría alguien por favor ver el código para los errores?

gracias

Archivos adjuntos:
 

¿Incluyó GetAccountNumber en un archivo .def en su dll compilado? Tiene que hacer esto para que funcione.

Además, asegúrese de que Permitir importaciones Dll está seleccionado para su experto.

Espero que esto ayude.

-wolfe

 

Soy un poco nuevo en C++ así que supongo que estudiaré los archivos def. He leído que añadir el archivo def a la carpeta librarys donde está la DLL puede resolver esto pero no.

También leí que añadir la DLL a la carpeta system32, todavía no.

tengo la intención de enviar este proyecto por correo electrónico a la gente así que prefiero no tener que decir cómo colocar 4 archivos diferentes todos en diferentes carpetas. es esta la única manera?

¿el código de los 3 archivos es correcto?

Muchas gracias

 

este es el archivo def. ¿se ve bien?

¿tiene que ir en las bibliotecas con la DLL?

 
jimmynz:
este es el archivo def. ¿se ve bien? ¿tiene que ir en las bibliotecas con la DLL?

El archivo .def es parte de su solución compilada en c++. Luego copio mi dll de c++ compilado en la carpeta system32 de windows. Yo uso un sistema de 32 bits con windows xp.

Tampoco soy un experto en c++, pero así es como pude hacerlo funcionar.

 

Gracias por la ayuda, pero todavía no.

Lo más curioso es que he intentado hacer un EA con el código habitual para comprobar el número de cuentas:

int a = 907671;

int b = AccountNumber();

si (b != a) {

Alert("¡Comprobando el número de cuenta! (" + DoubleToStr(li_16, 0) + ") Acc errónea");

return (0)}

como EA se carga sin importar el número, pero si lo hago como indi funciona bien?

ggrrr

 

...

Tu EA siempre se cargará (si no tiene un error de codificación que impida su compilación)

Sólo tienes que decidir dónde quieres que deje de hacer el "trabajo habitual" que hace y evitar que lo haga por otros no autorizados. Normalmente se pone esa rutina de comprobación al principio del start() - algo así :

//+------------------------------------------------------------------+

//| Dll_call.mq4 |

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

static bool alerted = false;

int a = 907671;

int b = AccountNumber();

if (b != a)

{

if (!alerted)

{

Comment("Checking Account No! (" + DoubleToStr(b, 0) + ") wrong Acc");

alerted = true;

}

return (0);

}

//

//

// the part that is not executed when account number is wrong

//

//

alerted = false;

Comment("continuing the rest of the job");

return(0);

}

Pero además, este tipo de comprobación es hackeable por un descompilador en cuestión de minutos.

PD: he cambiado el Alert() por el Comment() para que puedas comprobarlo en visual back test

jimmynz:
gracias por la ayuda, pero todavía no.

lo curioso es que he probado a hacer un EA con el código habitual para comprobar acc #:

int a = 907671;

int b = AccountNumber();

si (b != a) {

Alert("¡Comprobando el número de cuenta! (" + DoubleToStr(li_16, 0) + ") Acc errónea");

return (0)}

como EA se carga sin importar el número, pero si lo hago como indi funciona bien?

ggrrr
 
 
luxinterior:
¿Así que tu gran plan es tomar dos EAs gratuitos que probablemente encontraste aquí y 'fusionarlos' juntos y venderlos por 2K cada uno? Tienes mucho valor, amigo. Tal vez, si tienes mucha suerte, uno de los dos tipos que realmente dieron su tiempo, esfuerzo y conocimiento de forma gratuita se ofrecerá a hacerlo por ti.

Oh, pero ¡espera! Si el código está 'desordenado' entonces los EA's son probablemente EA's comerciales que han sido descompilados. ¿Es eso? ¡¡¡Idiota!!!

Lux

Oh, bonito discurso. Déjame decirte esto:

No importa qué EA estés mirando, lo más probable es que haya alguien con la misma idea que ya tenga el EA hecho. ¿EAs gratis? ¿Me estás tomando el pelo? ¿Qué EA de este foro tiene ese potencial?

Además, hay un montón de gente que se llama a sí mismo desarrolladores también están copiando de los demás, la venta de $ 3000 suscripciones del club. Y lo peor, con EA's que te revientan las cuentas. .... CERO

Además, nunca había cogido ningún EA de aquí. ¿Qué EA vale para la fusión en este foro? Además, si el código está estropeado, podría ser yo quien pidiera a los programadores que codificaran un EA. Entonces, como más características necesarias, estoy pidiendo diferentes programadores ... PARA AYUDAR !

Diferentes estilos de codificación podría con el tiempo, desordenado códigos.

Además, no he descompilado ningún EA comercial. La razón por la que dijo que soy, es el hecho de que usted está haciendo usted mismo. No sé qué tipo de lío causará un descompilador. Pero seguro que si estás tan seguro de que un descompilador podría causar un lío, entonces probablemente lo has estado usando. Si no, nunca lo sabrías.

Un consejo, antes de llamar a otros imbéciles o tratar de actuar como un policía / héroe que salva el día, júzguese a sí mismo primero. Si no, esas palabras que salen de tu boca podrían obligarte a tragarlas de nuevo.

Gracias.

 

Ayuda sobre iMAOnArray()

Hola,

Soy nuevo en MT4... He estado tratando de incluir el siguiente código en un experto, pero no he podido hacerlo

"iMAOnArray(ind_buffer1,Bars,SignalEMA,0,MODE_EMA,i); "

Sí, sé que lo anterior no se puede utilizar directamente en un EA, pero ¿es posible lograr los mismos resultados mediante la recodificación de la MA anterior? si es así, realmente agradecería un poco de ayuda en eso.

Saludos.