Eu revelei que a diretiva #include é ignorada se repetida, ou seja
int OnStart() { #include <dummy.mqh> #include <dummy.mqh> #include <dummy.mqh> #include <dummy.mqh> }
funciona da mesma forma que
int OnStart() { #include <dummy.mqh> }
Embora seja um comportamento muito bem-vindo se você tiver declarações de classe em arquivos separados, isso não é mencionado no arquivo de ajuda.
Você está fazendo uma pergunta geral de programação como "apagar memória alocada dinamicamente" || "limitar o uso de funções recursivas". Ou você está se referindo a um bug de vazamento de memória dentro do beta?
Definitivamente, a primeira. Não tenho nenhuma experiência em cuidar de referências de objetos não utilizados, pois minha formação vem da JAVA. Portanto, estou falando sério, que aprecio uma dica para encontrar objetos vazados após receber a mensagem de aviso genérica (se tal dica existir). Neste momento estou tentando identificar a classe do objeto vazado a partir do número de bytes que o aviso imprime.
É incompleto em comparação com o mt5. Deve haver outra linha que diz o nome da Classe. Esperemos que eles acrescentem isto em breve.
Bem, a caça ao vazamento se tornou realmente irritante... mais do que eu esperava.
Eu gastei algum esforço para criar uma ferramenta, mas não tive sucesso algum. Embora eu descobrisse que podia redefinir as declarações de novo/eliminação, percebi que não tinha nada com que substituí-las. Se fossem funções com parênteses, então seria muito simples, mas infelizmente são declarações. Eu poderia criar um invólucro em torno das declarações novas/apagadas para registrá-las, mas seria uma solução muito dolorosa que não tem futuro.
Se alguém tiver alguma experiência em como detectar a fonte do vazamento, por favor, largue uma nota.
Bem, a caça ao vazamento se tornou realmente irritante... mais do que eu esperava.
Eu gastei algum esforço para criar uma ferramenta, mas não tive sucesso algum. Embora eu descobrisse que podia redefinir as declarações de novo/eliminação, percebi que não tinha nada com que substituí-las. Se fossem funções com parênteses, então seria muito simples, mas infelizmente são declarações. Eu poderia criar um invólucro em torno das declarações novas/apagadas para registrá-las, mas seria uma solução muito dolorosa que não tem futuro.
Se alguém tiver alguma experiência em como detectar a fonte do vazamento, por favor, largue uma nota.
Talvez estes artigos (para mql5, mas o mesmo se aplica ao novo mql4) possam ajudá-lo a encontrar uma solução :
A Ordem de Criação e Destruição de Objetos na MQL5
Usando os Ponteiros de Objeto na MQL5Talvez estes artigos (para mql5 mas o mesmo se aplica ao novo mql4) possam ajudá-lo a encontrar uma solução :
A Ordem de Criação e Destruição de Objetos na MQL5
Usando os Ponteiros de Objeto na MQL5
Obrigado por sua nota.
Infelizmente não parece ajudar no tratamento de vazamentos, isso só explica porque eles acontecem.
A única solução que tenho usado até agora é codificar um teste unitário para cada código que eu crio, e executar testes unitários com freqüência durante o desenvolvimento. Portanto, se o vazamento aparecer, posso tentar isolar o caso de teste que o causou. No entanto, alguns testes são bastante complexos, portanto não é uma solução fácil para o propósito. E o editor é uma verdadeira dor.
Como distinguir a nova sintaxe?
Sinto que preciso de uma palavra diferente para fazer referência à sintaxe "próxima" e à sintaxe "original". Parece que a MQ não se importa com os nomes oficiais e continua fingindo que eles são compatíveis.
Portanto, parece que nós mesmos temos que encontrar nomes apropriados. Alguma sugestão? MQL4 V2, OMQL4 (ou seja, Objeto), MQL4.1 ...?
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Já faz um tempo desde que o Beta foi lançado, e eu vi uma nota em algum lugar, que a liberação regular poderia aparecer em meados de janeiro. Embora duvide que isso aconteça, talvez alguns codificadores possam sentir interesse em compartilhar idéias e problemas que aprenderam com o Beta.
Já é significativo iniciar uma discussão sobre a nova sintaxe da fonte MQL4, editor, compilador, padrões, OOP, ou qualquer coisa relacionada?
Por favor, sem relatórios de erros, sem gritos, apenas uma discussão construtiva neste tópico.