Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 163

 
hoz:

Há uma biblioteca hoz_LoggingToAnywhere@Library.mq4, que é chamada a partir do arquivo de cabeçalho hoz_Base@Include.mqh

Ao compilar a biblioteca hoz_LoggingToAnywhere@Library.mq4, eu a vejo no registro:

Eu vou lá... E aí eu vejo:

Chamar esta função fPrint de outras bibliotecas não é culpado em lugar algum, mas do arquivo de cabeçalho... ela o faz. Por que isto é assim? Já foi copiado o símbolo certo para simbolizar...


Porque esta função tem (...) como parâmetro, e você precisa da composição exata


link:

https://docs.mql4.com/ru/basis/preprosessor/import

Como as funções importadas estão fora do módulo que está sendo compilado, o compilador não pode verificar se os parâmetros passados estão corretos. Portanto, a fim de evitar erros de tempo de execução, a composição exata e a ordem dos parâmetros passados para as funções importadas devem ser especificadas. Os parâmetros passados para funções importadas (tanto de módulos EX4 como DLL) não podem ter valores padrão.

 
ilunga:

Porque esta função tem (...) como parâmetros e você precisa da composição exata


referência:

https://docs.mql4.com/ru/basis/preprosessor/import

Como as funções importadas estão fora do módulo que está sendo compilado, o compilador não pode verificar a exatidão dos parâmetros passados. Portanto, a fim de evitar erros de tempo de execução, a composição exata e a ordem dos parâmetros passados às funções importadas devem ser descritas. Os parâmetros passados para funções importadas (tanto de módulos EX4 como DLL) não podem ter valores padrão.


Portanto, eu importei as funções corretamente, de acordo com:

#import "hoz_LoggingToAnywhere@Library.ex4"
    void fPrint (string& fs_Text);
#import
#import "hoz_HandlingWithErrorS.ex4"
    string fErrorToString(int fi_Error);
    string fErrorDescription (int fi_Error);
#import

O tipo de função e os parâmetros estão lá... E eu já o usei desta maneira:

fPrint (StringConcatenate ("fInitBase() => ", fErrorToString (bi_Err)));

Na verdade aqui é óbvio que tudo entre parênteses StringConcatenate é do tipo string, eu já os declarei durante a importação.

//.......................................................................................................................................................................//

Onde está o problema? Alguma coisa sai um completo disparate. Eu o mudei para isto:

string m = StringConcatenate ("fInitBase() => ", fErrorToString (bi_Err));
   fPrint (m);

E sem mais erros. Mas eu não gosto deste visual. Está se alongando. Algo mais curto?

 
hoz:


Onde está o problema?

Está em sua abordagem. Para ser mais preciso - na sua relutância em ler a documentação técnica. Sempre o mesmo "ancinho". Se você fosse tão gentil, independentemente Leia quando você pode passar parâmetros por referência e quando não pode.

https://docs.mql4.com/ru/basis/variables/formal

Se não estiver claro, basta memorizá-lo.

 
VladislavVG:

Está em sua abordagem. Mais especificamente, sua indisponibilidade para ler a documentação técnica. Sempre o mesmo "ancinho". Se você fosse tão gentil, independentemente Leia quando você pode passar parâmetros por referência e quando não pode.

https://docs.mql4.com/ru/basis/variables/formal

Se não estiver claro, basta memorizá-lo.


Na verdade, você está certo em algum lugar. Mas não é uma falta de vontade de entender, é apenas um pouco de ausência de mentalidade. É nisso que eu estou trabalhando. O assunto está resolvido. Muito obrigado pela repreensão! Vou levar isso em consideração.
 
hoz:

Na verdade, você está certo em algum lugar. Mas não é uma falta de vontade de entender, é apenas um pouco de ausência de mentalidade. É nisso que eu estou trabalhando. A pergunta está terminada. Muito obrigado pela repreensão! Vou levar isso em consideração.
No canto, nas ervilhas!
 
artmedia70:
No canto, nas ervilhas!


 

Cavalheiros, aconselhem como configurar (fechar) a visão de guia no fxbook. Obrigado.


 
A questão foi resolvida.
 

Ainda não dominei bem o mql4, mas já fiz alguns progressos. Eu gosto do testador de estratégia em mql5, na minha opinião, ele mostra um quadro mais profundo e somente por causa do testador eu quero converter EAs em mql5.

Mas uma coisa está faltando no fórum mql5, não há muitas mensagens, o fórum não é muito ativo. É possível fazer perguntas sobre o mql5 neste fórum?

 
Forexman77:

Ainda não dominei bem o mql4, mas já fiz alguns progressos. Eu gosto do testador de estratégia em mql5, ele me dá uma visão mais profunda da situação e somente por causa do testador eu gostaria de mudar meus EAs para mql5.

O fórum mql5 tem apenas algumas mensagens, o fórum não é tão ativo assim. É possível fazer perguntas sobre o mql5 neste fórum?

Creio que a MQL4 e a MQL5 dividiram as pessoas em comerciantes e programadores. Os da MQL5 podem fazer todo tipo de coisas bonitas e depois vendê-las no mercado. O comerciante comum precisa apenas da MQL4, para não mencionar aqueles que comercializam à mão. Eu mesmo tentei, e até consegui uma pequena visão do OOP. Tente e aprenda. Isso lhe pagará)).