Discussão sobre "Como escrever uma DLL para MQL5 e trocar dados em 10 minutos". - página 10
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Aí é que está, o guião apenas arranca, como é que eu posso ver o código de erro depois disso? Ou da próxima vez que for executado, pode ser lido imediatamente?
Em princípio, o problema foi resolvido através da compilação de dll para 64x. Embora, depois disso, tenha recebido mais erros, mas isso não é importante. Só precisava de compreender como construir e ligar bibliotecas de c/s++ a mql5 em geral. O meu exemplo funciona bem agora.
Se tem o Studio 2017 e está a ver estas instruções para o seu antigo estúdio e não sabe o que fazer ou como o fazer, recomendo-lhe que leia primeiro este artigo: https://docs.microsoft.com/ru-ru/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=vs-2017
Depois, quando tiver criado a sua dll, seguindo o exemplo deste artigo e a tiver testado numa aplicação cliente, leia esta instrução, a partir do ponto 2, "No programa MQL5 deve ser descrito e chamado assim:". Por outras palavras, declare o seu dll em mt5, tal como aí é descrito.
Resolvi o meu problema desta forma.
Gostaria de uma lista de correlações de tipo entre C++ e MQL sob a forma de macros.
#define MQL_STRING wchar_t
Aqui está o meu código no Visual Studio 2012 C++. Ficheiro principal. com extensão cpp (main.cpp)
Depois criei um ficheiro com a extensão principal def (main.def), que tem uma listade funções exportadas, o código tem este aspecto:
LIBRARY "dllmt42" EXPORTS add
Depois importei-o para o compilador
Sem problemas após a compilação, mas quando se deixa a EA no gráfico, fico confuso
Chamada de função de importação não resolvida, encontrar '_add' em 'dllmt42.dll'. Total Comander vê a função assim como o próprio compilador ao arrastar o ficheiro
Quem pode ajudar, como resolver o problema com o erro, afinal existe um ficheiro com extensão .def que armazena e é responsável pela exportação correcta das funções?
Aqui está o meu código no C++ Visual Studio 2012. O ficheiro principal. com extensão cpp (main.cpp)
Depois criei um ficheiro com a extensão principal def (main.def), que tem uma listade funções exportadas, o código tem este aspecto:
Depois importei-o para o compilador
Sem problemas após a compilação, mas quando se deixa a EA no gráfico, fico confuso
Chamada de função de importação não resolvida, encontrar '_add' em 'dllmt42.dll'. Total Comander vê a função assim como o próprio compilador ao arrastar o ficheiro
Quem pode ajudar, como resolver o problema com o erro, afinal existe um ficheiro com extensão .def que armazena e é responsável pela exportação correcta das funções?
C" externo deve ser acrescentado tanto às declarações como às implementações das funções exportadas, uma vez que se trata de C++. Caso contrário, as assinaturas de entrada são "mais" e a MT (assim como todos os outros) não as verá.
C" externo deve ser acrescentado tanto às declarações como às implementações das funções exportadas, uma vez que C++ está aqui. Caso contrário, as assinaturas de entrada são "mais" e a MT (como todos os outros) não as verá.
Bem, eu acrescentei-o assim
Mas ainda a mesma coisa -chamada de função de importação não resolvida, encontrar '_add' em 'dllmt42.dll'... Isto é, preciso de C puro sem ++?
O ficheiro .def não é de todo necessário. É necessário duplicar as funções na secção #importar no MQL
Bem, sim, e fiz sem ele eu vi e tal, eu não vou, bem, mostre-me o que é duplicado já aponta o caminho?