Penso que é um bug, a julgar pelo erro - o compilador ME5 não consegue distinguir a descrição da função da sua implementação (embora ME4 pudesse distinguir) e pensa que são duas funções diferentes com o mesmo nome.
Isto é ambíguo. Parece terrivelmente torto, podíamos passar sem ele introduzindo outro cabeçalho.
Não, não tem.
Na MQL4 esta construção não causa erros e tudo funciona
logicamente não deve funcionar, que é o que o compilador diz explicitamente.
Porque não deveria? Em 1.mqh a função é declarada, em 1.mq5 a sua implementação, em 2.mq5 é utilizada
Uma função é a definição, a outra a importação.
Porque é que tem de fazer uma tal confusão em primeiro lugar? Incluir um cabeçalho com uma importação de si mesmo?
Porquê fazer uma tal confusão? Incluir um cabeçalho com as suas próprias importações?
Penso que é um bug, a julgar pelo erro - o compilador ME5 não consegue distinguir a descrição da função da sua implementação (embora ME4 pudesse distinguir) e pensa que são duas funções diferentes com o mesmo nome.