gchrmt4: Ainda não tenho certeza se entendi, mas... Não creio que você possa declarar a importação da MQL4 como nula*. Você tem que usar um tipo de dado específico na importação, e então você só pode usar a importação DLL com esse tipo de dado. Se você quiser usar a mesma função DLL com diferentes tipos de dados, então você tem um problema, a menos que haja uma solução como https://www.mql5.com/en/forum/148934.
Na verdade, estou usando um método de trabalho, mas é bastante fraco - envolvendo qualquer tipo em uma estrutura genérica. Aceitar uma estrutura genérica como parâmetro pode mudar em qualquer lançamento futuro, mas isso não funciona com matrizes.
Na verdade, estou usando um método de trabalho, mas é bastante fraco - envolvendo qualquer tipo em uma estrutura genérica. Aceitar uma estrutura genérica como parâmetro pode mudar em qualquer lançamento futuro, mas isso não funciona com matrizes.
... Parece que estou errado. O que ambos estamos esquecendo é que a MQL4 agora tem uma sobrecarga de funções, e portanto é possível fazer algo assim:
Também notei pequena inconsistência na compilação de código com dependência de arquivos incluídos.
Se dois ou mais projetos compartilham o mesmo include, e o arquivo include é modificado, então os primeiros projetos o detectam e recompilam, enquanto os próximos projetos não o fazem. Mas não é um problema sério (podemos excluir todos os ex4 a qualquer momento).
Preciso apenas de uma resposta rápida, hoje estou cansado demais para procurá-la. É possível destruir o escopo2 antes que ele atinja o limite do bloco? Acho que não, mas é melhor perguntar.
{
MT4Scope* scope = new MT4Scope(_Symbol, 222);
MT4Scope scope2(_Symbol, 223);
delete scope; // calls destructor
// here I want to call scope2 destructor, but I do not know how
// some additional code
}
Ovo: Preciso apenas de uma resposta rápida, hoje estou cansado demais para procurá-la. É possível destruir o escopo2 antes que ele atinja o limite do bloco? Acho que não, mas é melhor perguntar.
Por que o "ArrayMaximum" é diferente entre MT4 600+ e MT5? Pensei que a razão para migrar a sintaxe do MT4 para o MT5 era facilitar o desenvolvimento de aplicações que funcionassem em ambos?!?!
MT4
intArrayMaximum(
constvoid& array[], // array for searchint count=WHOLE_ARRAY, // number of checked elementsint start=0// index to start checking with
);
MT5
intArrayMaximum(
constvoid& array[], // array for searchint start=0, // index to start checking withint count=WHOLE_ARRAY// number of checked elements
);
Por que o "ArrayMaximum" é diferente entre MT4 600+ e MT5? Pensei que a razão para migrar a sintaxe do MT4 para o MT5 era facilitar o desenvolvimento de aplicações que funcionassem em ambos?!?!
Provavelmente para tentar manter alguma compatibilidade com o passado ...
dlewisfl: Por que o "ArrayMaximum" é diferente entre MT4 600+ e MT5? Pensei que a razão para migrar a sintaxe do MT4 para o MT5 era facilitar o desenvolvimento de aplicações que funcionassem em ambos?!?!
Ainda não tenho certeza se entendi, mas... Não creio que você possa declarar a importação da MQL4 como nula*. Você tem que usar um tipo de dado específico na importação, e então você só pode usar a importação DLL com esse tipo de dado. Se você quiser usar a mesma função DLL com diferentes tipos de dados, então você tem um problema, a menos que haja uma solução como https://www.mql5.com/en/forum/148934.
Na verdade, estou usando um método de trabalho, mas é bastante fraco - envolvendo qualquer tipo em uma estrutura genérica. Aceitar uma estrutura genérica como parâmetro pode mudar em qualquer lançamento futuro, mas isso não funciona com matrizes.
Na verdade, estou usando um método de trabalho, mas é bastante fraco - envolvendo qualquer tipo em uma estrutura genérica. Aceitar uma estrutura genérica como parâmetro pode mudar em qualquer lançamento futuro, mas isso não funciona com matrizes.
... Parece que estou errado. O que ambos estamos esquecendo é que a MQL4 agora tem uma sobrecarga de funções, e portanto é possível fazer algo assim:
... Parece que estou errado. O que ambos estamos esquecendo é que a MQL4 agora tem uma sobrecarga de funções e, portanto, é possível fazer algo assim:
Claro, é disso que eu falo desde o início :)
Até agora minha importação parece ser assim:
e me pergunto quanto tempo esta lista (para uma única importação) se torna em um ano...
Também notei pequena inconsistência na compilação de código com dependência de arquivos incluídos.
Se dois ou mais projetos compartilham o mesmo include, e o arquivo include é modificado, então os primeiros projetos o detectam e recompilam, enquanto os próximos projetos não o fazem. Mas não é um problema sério (podemos excluir todos os ex4 a qualquer momento).
Preciso apenas de uma resposta rápida, hoje estou cansado demais para procurá-la. É possível destruir o escopo2 antes que ele atinja o limite do bloco? Acho que não, mas é melhor perguntar.
{ MT4Scope* scope = new MT4Scope(_Symbol, 222); MT4Scope scope2(_Symbol, 223); delete scope; // calls destructor // here I want to call scope2 destructor, but I do not know how // some additional code }Não.
Obrigado.
Por que o "ArrayMaximum" é diferente entre MT4 600+ e MT5? Pensei que a razão para migrar a sintaxe do MT4 para o MT5 era facilitar o desenvolvimento de aplicações que funcionassem em ambos?!?!
MT4
MT5
Por que o "ArrayMaximum" é diferente entre MT4 600+ e MT5? Pensei que a razão para migrar a sintaxe do MT4 para o MT5 era facilitar o desenvolvimento de aplicações que funcionassem em ambos?!?!