Discusión sobre "Cómo escribir una DLL para MQL5 e intercambiar datos en 10 minutos". - página 11

 
Seric29:

Sí, yo también lo he visto sin él, a mí no me funciona, ¿por qué no me enseñas a duplicarlo?

https://github.com/Roffild/RoffildLibrary/blob/master/Libraries/Roffild/PythonDLL/public.h

https://github.com/Roffild/RoffildLibrary/blob/c38ba6babd0935704fd30abeb58b953e33ede3e9/Include/Roffild/PythonDLL.mqh#L16

He utilizado este enfoque para no duplicar el código en diferentes archivos.

 
Roffild:

No es algo que pueda hacer.

 
¿Qué bibliotecas necesito incluir en c++ para pasar fechas y cadenas a la dll, y cómo trabajo con los colores en c++?
 
Seric29:
¿Qué bibliotecas necesito incluir en c++ para pasar fechas y cadenas a la dll, y cómo trabajo con los colores en c++?

No se necesita ninguno. __time64_t (datetime) y wchar_t (string) son tipos estándar. El análogo para el color es COLORREF.

 
Ihor Herasko:

No se necesita ninguno. __time64_t (datetime) y wchar_t (string) son tipos estándar. El análogo para el color es COLORREF.

Ya que soy un burro, ¿qué tan difícil es mostrar cómo se declara esta variable y cómo se ven sus valores usando sus recomendaciones? Para las fechas debe ser__time32_t porque estoy usando 32. Muéstrame cómo declarar__time32_t, cómo declarar la variable que almacena la fecha y cómo se ve y lo mismo para los colores. Con las cuerdas, hago esto

#include<string>

utilizando std::string;

cadena l="123456 ";

Para las fechas aconsejado #include<chrono>, pero no funciona, pero sobre los colores se dieron consejos aún más complicado incluso escribir sobre él no lo hará.

 
¡¿Oh, sí?! ... Es mucho más duro que un tronco. Llevo tres días dándole vueltas a lo mismo; lo he cambiado todo, lo he rebautizado, lo he reordenado, lo he retorcido todo de tal manera que hasta las chinches de mi espacio cerebral han dejado de jadear y se han resignado a la inutilidad de su empresa, han escupido sobre todo y se han ido con mis vecinos, tomándose una licencia; habiendo llegado a la inequívoca conclusión de que hay algo más chulo que su fugaz oscurantismo: tocando el salterio, bailando al ritmo de la balalaika con panderetas y timbales en si bemol mayor; es claramente una especie de canto alienígena... ¡?! Y fue porque no marqué la casilla en laconfiguración del terminal: Herramientas/Configuración/Advertencias/Permitir importar DLL. Oh, hombre... . Y para colmo no me aclaro: quizá lo he hecho todo bien la mayor parte del tiempo... Podría repetir todo el proceso, pero no recuerdo qué hice y cómo lo hice... . Se pone peor... . Aquí todo funciona y trabaja en diferentes estudios. Lo único que no entiendo es la conexión con el lenguaje "C" y la interacción con las estructuras y las clases, es decir, no se podrán poner en él, pero se me acaba de ocurrir intentar escribir "CPP" en lugar de "C" y probar... Supongo que tendré que escribir todo en algún lugar del camino. Una buena lección. Buena suerte a todos. Probado, no funciona con este "CPP", pero la interacción de clases dentro de la propia DLL hace que todo funcione.
Настройки платформы - Начало работы - MetaTrader 5
Настройки платформы - Начало работы - MetaTrader 5
  • www.metatrader5.com
Торговая платформа обладает множеством настроек, что позволяет организовать работу в ней так, как это удобно именно вам. Выполните команду " Настройки" меню "Сервис" или нажмите "Ctrl+O". Графики — общая настройка отображения ценовых графиков, а также настройка параметров управления объектами: выделение объектов после их создания, немедленная...
 
P.D: Yo borro los archivos erróneos de una vez y ni siquiera recuerdo casi ningún error, (Esto es cuando voy a hacer una DLL yo mismo), pero no siempre, por alguna razón?!.... Y no hay manera de que pueda atraparlo. Está relacionado con algunos atributos y con los Kits de Windows con la información de la biblioteca winnt.h por supuesto se puede encontrar sobre la marcha si traduce su navegador a la búsqueda de Inglés, pero ayer he intentado un poco de búsqueda y algo sin éxito. Personalmente creo que en algún lugar de la configuración del proyecto para hacer trampa, o hacer algo al azar, y luego linker se vuelve loco con sus movimientos. En general, este error para mí está todavía en el borde de la oscuridad ..., aunque hay una opción, ahora rápidamente hacer mura que produciría este error y mirar su código y analizar ... . Lo más probable es que lo haga. Pero no de inmediato, sino gradualmente, o mi cerebro se quemará por completo y no quedará mucho. Buena suerte a todos. P.D.: Me olvido de Microsoft Docs, y tiene de todo, ahora he echado un vistazo y ya he encontrado una interesante, dice que en algún sitio no he añadido la expresión #define. Oh, me olvidé de Docs. A la mierda con Google... .
 
¿Cómo implementar las variables datetame y color en la librería C++ dll? ¿Cómo llamar a la función Print() en la dll con qué reemplazarla, porque c++ no la tiene?
 
Ihor Herasko:

No se necesita ninguno. __time64_t (datetime) y wchar_t (string) son tipos estándar. El análogo para el color es COLORREF.


Veamos cómo funciona.

 
Seric29:
¿Cómo implementar la variable de tipo datetame y color en la biblioteca dll de c++? ¿Cómo llamar a la función Print() en la dll con qué reemplazarla, porque c++ no la tiene?

Print() es una función disponible sólo en mql4 y mql5. No se puede sustituir directamente, porque el dispositivo de salida para ello es un archivo de registro del terminal. Pero puede ser llamado indirectamente, si usted envía un comando correspondiente al Asesor Experto (indicador, script), al cual el dll está conectado. Depende de cómo se implemente el intercambio de datos entre el dll y el Asesor Experto.

Además, si hay una tarea para imprimir algo en algún lugar, no necesariamente en el diario de la terminal, hay un montón de posibilidades para esto: archivo, impresora, mostrar en el final.