Discussion sur "Comment écrire une DLL pour MQL5 et échanger des données en 10 minutes". - page 9

 
Renat:

Vous devez améliorer votre niveau technique.

Pour les programmes 64 bits, vous avez besoin de bibliothèques 64 bits et il n'y a aucun moyen de connecter raisonnablement des bibliothèques 32 bits. Pour installer la version 32 bits, le programme d'installation doit être exécuté avec le commutateur /32.

Je vais réécrire l'article et ajouter des fonctionnalités intéressantes qui ont été implémentées depuis longtemps dans MetaEditor et les plateformes MT4 et MT5. De nombreux développeurs ne sont pas au courant des nouvelles fonctionnalités.

Merci Renat pour votre réponse. Aujourd'hui, les marchés sont plutôt compliqués, et le trading vous fait presque sortir de vos gonds et il n'y a presque plus de temps pour s'améliorer dans le domaine technique. Je ne comprends vraiment pas la différence entre les programmes 32 bits et 64 bits. Je ne peux que constater que cela crée des problèmes inutiles pour les utilisateurs. Tout le monde roule quelque part et Microsoft y compris, ils veulent aller plus vite et plus brusquement mais les utilisateurs sont confrontés à de nombreux problèmes. Je ne vois pas de différence de vitesse entre le 64 bits et le 32 bits. Cependant, mon processeur est un i7-4 - le dernier Intel, peut-être à cause de cela. Je vois aussi que Microsoft compresse le C++. Ils ont même supprimé l'option de travailler avec des formulaires C++ dans le dernier compilateur. Et quand j'ai demandé pourquoi ? La réponse est : pourquoi n'essayez-vous pas le nouveau et plus parfait C++ ? Ainsi, si vous vous projetez dans l'avenir, vous devez également en tenir compte.
 
ANG3110:


Et je vois que Microsoft a commencé à compresser le C++. Dans le dernier compilateur, ils ont même supprimé la possibilité de travailler avec des formulaires en C++. Et quand j'ai demandé pourquoi ? La réponse est : pourquoi n'essayez-vous pas le nouveau C++ amélioré ? Ainsi, si vous vous projetez dans l'avenir, vous devez également en tenir compte.

Microsoft est un tueur de technologie notoire, et ces derniers temps, il a creusé sa propre tombe après la sienne.

Pourquoi interférer avec lui - laissez-le tomber dans son propre trou. Il s'agit donc, au sens figuré, de ne pas perdre de temps avec les détails techniques. Qui veut des détails - il y en a des milliers sur Internet. Après "meilleur C#", je n'ai pas d'autres mots.

 
:)
 
Chers collègues, comment puis-je connecter les bibliothèques MT dans VS ? pour que mon studio ne souligne pas les chaînes, les dates...
 
Renat Fatkhullin:

Vous devez améliorer votre niveau technique.

Pour les programmes 64 bits, vous avez besoin de bibliothèques 64 bits et il est impossible de connecter raisonnablement des bibliothèques 32 bits. Pour installer la version 32 bits, vous devez exécuter le programme d'installation avec le commutateur /32.

Je vais réécrire l'article et ajouter des fonctionnalités intéressantes qui ont été implémentées depuis longtemps dans MetaEditor et les plateformes MT4 et MT5. De nombreux développeurs ne sont pas au courant des nouvelles fonctionnalités.

Existe-t-il un exemple pour créer une dll 64 bits pour la version 64 bits du terminal ? Et à propos des "trucs cool", il est intéressant de savoir)
 

Il s'est avéré que c'était facile !

J'ai installé la version gratuite de Visual Studio Community 2015 (exactement Community, car elle a le support x64, contrairement à Express). Les versions payantes ont x64 aussi bien sûr, mais je regardais les options gratuites. Web Installer m'a donné une erreur, donc j'ai installé à partir de l'image ISO. Lors de l'installation, sélectionnez l'installation "personnalisée" et cochez C++ (il n'est pas installé par défaut).

J'ai ensuite fait tout ce qui est décrit dans l'article, c'est-à-dire que j'ai créé un projet Win32. J'ai créé un assemblage, que le terminal x64 a refusé d'accepter (comme prévu).

Ensuite, dans l'onglet "Build" -> "Configuration Manager", j'ai changé la plate-forme en x64 (vous pouvez également changer "Active Solution Platform" en x64).


Je l'ai reconstruit. La nouvelle dll se trouvait dans le dossier \x64\Debug (la version finale sera dans x64\Release\), que le terminal x64 a traité sans problème et a renvoyé la sortie suivante :

19:29:01.883 dll_test (EURUSD.e,H1) Temps 16 msec, int : -752584127 double : 17247836076609.0
19:29:01.883 dll_test (EURUSD.e,H1) Tableau : 0 1 2 3 4 5 6 7 8 9
19:29:01.883 dll_test (EURUSD.e,H1) Replace : Un chat brun rapide saute par-dessus le chien paresseux.
19:29:01.886 dll_test (EURUSD.e,H1) Violation d'accès à 0x000007FEFB0F176F write to 0x000000000000 dans ...\MQL5\Libraries\ConsoleApplication1.dll''.
et une description plus détaillée de l'erreur interceptée
C'est-à-dire que tout fonctionne ! !!

Downloads | Visual Studio
Downloads | Visual Studio
  • www.visualstudio.com
Visual Studio Community 2015 with Update 1 - Free Visual Studio Community 2015 with Update 1 is a free, fully featured, and extensible IDE for individual developers, open source projects, academic research, education, and small professional teams. Create applications for Windows, Android, and iOS as well as web applications and cloud services...
 

Note :

Lors du transfert de la DLL sur un autre ordinateur, elle a refusé de fonctionner car elle utilisait des composants de VS lui-même. Le problème est résolu dans Project -> Properties -> Use MFC, réglé sur "Use MFC in static library". Après cela, reconstruisez et recompilez la DLL.

Je l'ai trouvé sur le forum :

Il est possible d'optimiser les EA avec des DLL non seulement sur l'ordinateur local, mais aussi sur un réseau local. Pour ce faire, sur les ordinateurs du réseau, ajoutez la clé /dlls au registre des agents de test. Appelez l'éditeur de registre : regedit

Renat Fatkhullin:

Pour les agents déjà installés, les commandes de démarrage ne peuvent être modifiées que via le registre dans les branches HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MetaTester-XXXX

Il suffit de cliquer sur chaque paramètre ImagePath et d'ajouter /dlls à la fin de la ligne.


 

Je suis en train de lier ZeroMQ à MT4 via une DLL.

C'est très mauvais en quelque sorte. Le terminal se plante tout le temps lors du démarrage de l'indicateur ou lors du déchargement. Et ça ne s'affiche pas en mode débogage, donc je ne sais pas ce qui se passe.

 

Bon après-midi.

Pour une raison quelconque, lorsque j'exécute l'exemple de test, le script se bloque au premier appel de la fonction importée.

2016.07.30 23:30:14.088 Scripts script mql5dll_test (EURUSD,H1) supprimé

Qu'est-ce que je fais de mal ?

 
EsEr:

Bon après-midi.

Pour une raison quelconque, lorsque j'exécute l'exemple de test, le script se bloque au premier appel de la fonction importée.

2016.07.30 23:30:14.088 Scripts script mql5dll_test (EURUSD,H1) supprimé

Qu'est-ce que je fais de mal ?

cet article a 6 ans, quelque chose a dû changer.

Quel est le code d'erreur ?