Discussão sobre "Como escrever uma DLL para MQL5 e trocar dados em 10 minutos". - página 11

 
Seric29:

Bem, sim, também já o vi sem ele, não funciona para mim, bem, mostre-me o que duplicar, vai apontar-me na direcção certa?

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

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

Utilizei esta abordagem para não duplicar o código em ficheiros diferentes.

 
Roffild:

Não é algo que eu possa fazer.

 
Que bibliotecas preciso de incluir em c++ para passar datas e cordas para a dll, e como trabalhar com cores em c+++?
 
Seric29:
Que bibliotecas tenho de incluir em c++ para passar datas e strings para dll, e como trabalho com cores em c+++?

Nenhuma é necessária. __time64_t (datatime) e wchar_t (string) são tipos padrão. O análogo para a cor é COLORREF.

 
Ihor Herasko:

Nenhuma é necessária. __time64_t (datatime) e wchar_t (string) são tipos padrão. O análogo para a cor é COLORREF.

Uma vez que sou um idiota, quão difícil se pode mostrar como esta variável é declarada e como são os seus valores utilizando as vossas recomendações? Para datas deve ser__time32_t porque estou a usar 32. Mostrar-me como declarar__time32_t, como declarar a data de armazenamento da variável e como ela se parece e o mesmo para as cores. Com cordas, eu faço isto

#incluir<string>

usando std::string;

string l="123456 ";

Para as datas aconselhadas #include<chrono>, mas não funciona, mas sobre as cores foram dados conselhos ainda mais complicados, mesmo escrever sobre isso não o fará.

 
Ah, sim? ...! ... É muito mais duro do que um tronco. Há três dias que ando a bisbilhotar com a mesma coisa; mudei tudo, renomeei-o, reorganizei-o, torci tudo de modo a que até os percevejos no meu espaço cerebral parassem de ofegar e se resignassem com a futilidade do seu empreendimento, cuspissem em tudo e fossem ter com os meus vizinhos, tirando uma licença de ausência; tendo chegado à conclusão inequívoca de que há algo mais fresco do que o seu obscurantismo fugaz: tocando o saltério, dançando ao balalaika com tamborins e timpani em B-flat major; é claramente algum tipo de cântico alienígena... ?! E foi porque não marquei a caixa nasdefinições do terminal: Ferramentas/Configurações/Avisuais/Possibilidade de importar DLL. Oh, meu... . E ainda por cima, não consigo perceber: talvez tenha feito tudo bem a maior parte do tempo... Podia repetir todo o processo, mas não me consigo lembrar do que fiz e como o fiz... . E piora... . Aqui tudo funciona e funciona em diferentes estúdios. A única coisa que não compreendo é a ligação à linguagem "C" e interacção com estruturas e classes, ou seja, não poderão ser colocadas nela, mas ocorreu-me apenas tentar escrever "CPP" em vez de "C" e tentar... Acho que vou ter de escrever tudo algures pelo caminho. Boa lição. Boa sorte a todos. Experimentei-o, não funciona com este "CPP", mas a interacção de classe dentro da própria DLL faz com que tudo funcione.
Настройки платформы - Начало работы - MetaTrader 5
Настройки платформы - Начало работы - MetaTrader 5
  • www.metatrader5.com
Торговая платформа обладает множеством настроек, что позволяет организовать работу в ней так, как это удобно именно вам. Выполните команду " Настройки" меню "Сервис" или нажмите "Ctrl+O". Графики — общая настройка отображения ценовых графиков, а также настройка параметров управления объектами: выделение объектов после их создания, немедленная...
 
P.S: Apago imediatamente os ficheiros errados e nem sequer me lembro de quase nenhum erro, (é quando eu próprio vou fazer uma DLL), mas nem sempre, por alguma razão?!.... E não há maneira de o conseguir apanhar. Está relacionado com alguns atributos e com os Kits Windows com informação da biblioteca winnt.h, claro, pode ser encontrado na mosca se traduzir o seu browser para a pesquisa em inglês, mas ontem tentei uma pequena pesquisa e algo sem sucesso. Pessoalmente, acredito que algures nos cenários do projecto para fazer batota, ou fazer algo aleatório, e depois o linker enlouquece com os seus movimentos. Em geral, este erro para mim ainda está no limite da obscuridade ..., no entanto, há uma opção, agora rapidamente fazer mura que iria produzir este erro e olhar para o seu código e analisar ... . O mais provável é que o faça. Mas não de imediato, mas gradualmente, ou o meu cérebro irá queimar completamente e não sobra muito. Boa sorte a todos. P.S.: Esqueci-me do Microsoft Docs, e ele tem tudo, agora dei uma vista de olhos e já encontrei um interessante, diz que algures não acrescentei a expressão #define. Oh, esqueci-me dos Docs. Que se lixe esse google... .
 
Como implementar o datetame e a variável de cor na biblioteca C++ dll? Como chamar a função Print( ) na dll com o que a substituir, porque c++ não a tem?
 
Ihor Herasko:

Nenhuma é necessária. __time64_t (datatime) e wchar_t (string) são tipos padrão. O análogo para a cor é COLORREF.


Então, vamos ver como funciona, não é?

 
Seric29:
Como implementar a variável datetame e tipo de cor na biblioteca c++ dll? Como chamar a função Print( ) na dll com o que a substituir, porque c++ não a tem?

Imprimir() é uma função disponível apenas em mql4 e mql5. Não pode ser substituído directamente, porque o dispositivo de saída para ele é um ficheiro de registo do terminal. Mas pode ser chamado indirectamente, se enviar um comando correspondente ao Expert Advisor (indicador, script), ao qual a dll está ligada. Depende de como é implementado o intercâmbio de dados entre a dll e o Expert Advisor.

Além disso, se houver uma tarefa para imprimir algo algures, não necessariamente no diário terminal, há muitas possibilidades para isso: ficheiro, impressora, exposição no final.

Razão: