Discussion sur "Comment écrire une DLL pour MQL5 et échanger des données en 10 minutes". - page 10
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
C'est ça le problème, le script se lance, comment puis-je voir le code d'erreur après ça ? Ou la prochaine fois qu'il est exécuté, il peut être lu immédiatement ?
En principe, le problème a été résolu en compilant la dll pour 64x. Bien que, après cela, j'ai eu plus d'erreurs, mais ce n'est pas important. J'avais juste besoin de comprendre comment construire et lier des bibliothèques pour c/s++ à mql5 en général. Mon exemple fonctionne bien maintenant.
Si vous avez Studio 2017 et que vous regardez ces instructions pour votre ancien studio et que vous ne savez pas ce qu'il faut faire ou comment le faire, je vous recommande de lire d'abord cet article : https://docs.microsoft.com/ru-ru/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=vs-2017.
Ensuite, lorsque vous avez créé votre dll, en suivant l'exemple de cet article et que vous l'avez testé sur une application client, lisez cette instruction, à partir du point 2, "Dans le programme MQL5, il doit être décrit et appelé comme ceci :". En d'autres termes, déclarez votre dll dans mt5 comme elle y est décrite.
J'ai résolu mon problème de cette façon.
J'aimerais avoir une liste des corrélations de types entre C++ et MQL sous forme de macros.
#define MQL_STRING wchar_t
Voici mon code en Visual Studio 2012 C++. Le fichier main. avec l'extension cpp (main.cpp)
Ensuite j'ai créé un fichier avec l'extension def (main.def), qui a une listede fonctions exportées, le code ressemble à ceci :
LIBRARY "dllmt42" EXPORTS add
Puis je l'ai importé dans le compilateur
Aucun problème après la compilation, mais lorsque vous laissez l'EA sur le graphique, je suis confus.
Unresolved import function call, find '_add' in 'dllmt42.dll'. Total Comander voit la fonction ainsi que le compilateur lui-même lorsqu'il fait glisser le fichier.
Qui peut aider à résoudre le problème de l'erreur, après tout il y a un fichier avec l'extension .def qui stocke et est responsable de l'exportation correcte des fonctions ?
Voici mon code en Visual Studio 2012 c++. Fichier main. avec extension cpp (main.cpp)
Ensuite j'ai créé un fichier avec l'extension def (main.def), qui a une listede fonctions exportées, le code ressemble à ceci :
Puis je l'ai importé dans le compilateur
Aucun problème après la compilation, mais lorsque vous laissez l'EA sur le graphique, je suis confus.
Unresolved import function call, find '_add' in 'dllmt42.dll'. Total Comander voit la fonction ainsi que le compilateur lui-même lorsqu'il fait glisser le fichier.
Qui peut aider, comment résoudre le problème avec l'erreur, après tout il ya un fichier avec l'extension .def qui stocke et est responsable de l'exportation correcte des fonctions ?
extern "C" doit être ajouté à la fois aux déclarations et aux implémentations des fonctions exportées, puisqu'il s'agit de C++. Sinon, les signatures d'entrée sont "plus" et MT (ainsi que tout le monde) ne les verra pas.
extern "C" devrait être ajouté à la fois aux déclarations et aux implémentations des fonctions exportées, puisque le C++ est là. Sinon, les signatures d'entrée sont "plus" et MT (comme tout le monde) ne les verra pas.
Eh bien, je l'ai ajouté ainsi
Mais toujours la même chose -appel de fonction d' importation non résolu, trouver '_add' dans 'dllmt42.dll'... C'est-à-dire que j'ai besoin de C pur sans ++ ?
Le fichier .def n'est pas du tout nécessaire. Vous devez dupliquer les fonctions dans la section #import dans MQL
Eh bien, oui, et fait sans elle, j'ai vu et tel, je ne vais pas, bien, montrez-moi ce qu'il est dupliqué déjà point de la manière ?